加盟家具品牌:(长整数的处理。假定用一个整型数组表示一个长整

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 16:55:01
(长整数的处理。假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:
m=a[k]x10k-1+a[k-1]x10k-2+….+a[2]x10+a[1]
其中a[0]保存该长整数的位数。求:
(1)输入一个长整数,输出一个长整数。
(2)2个长整数相加;
(3)转换为16进制数输出;)要过程的

main()
{ /*输入一个长整数,输出一个长整数*/
int i,k,a[100];
printf("输入位数:");
scanf("%d",&a[0]);
k=a[0];
printf("依次输入长整数的每一位:");
for(i=k;i>0;i--)
scanf("%d",&a[i]);
printf("该长整数为:");
for(i=k;i>0;i--)
printf("%d",a[i]);
}
main()
{ /*2个长整数相加*/
int i,k,n,a[100],b[100];
printf("分别输入两个长整数的位数,以逗号隔开:");
scanf("%d,%d",&a[0],&b[0]);
k=a[0];
n=b[0];
printf("依次输入2个长整数的每一位:");
for(i=k;i>0;i--)
scanf("%d",&a[i]);
for(i=n;i>0;i--)
scanf("%d",&b[i]);
if(k>=n){
for(i=1;i<=n;i++)a[i]+=b[i];
printf("相加后的长整数为:");
for(i=k;i>0;i--)printf("%d",a[i]);
}
else{
for(i=1;i<=k;i++)b[i]+=a[i];
printf("相加后的长整数为:");
for(i=n;i>0;i--)printf("%d",b[i]);
}
}
main()
{ /*转换为16进制输出*/
int i,j,k,m,a[100],b[100];
printf("输入位数:");
scanf("%d",&a[0]);
k=a[0];
printf("依次输入长整数的每一位:");
for(i=k;i>0;i--)
scanf("%d",&a[i]);
m=a[1];
for(i=2;i<=k;i++)
m+=a[i]*10*(i-1);
for(i=0;m==0;i++)
{
b[i]=m%16;
m/=16;
}
j=i;
for(i=0;i<j;i++)
{
if(b[i]==10)b[i]=65;
if(b[i]==11)b[i]=66;
if(b[i]==12)b[i]=67;
if(b[i]==13)b[i]=68;
if(b[i]==14)b[i]=69;
if(b[i]==15)b[i]=70;
}
printf("转换16进制后为:");
for(i=j-1;i>=0;i--)
{
if(b[i]>9)printf("%c",b[i]);
else printf("%d",b[i]);
}
}