C语言求改错!!超长整数的运算!!

2024-12-26 11:49:36
推荐回答(3个)
回答1:

#include
#include
#include

int main(int argc, char *argv[])
{int a[100],b[100],c[100],i,j=0,m,n,k;
char a1[100],b1[100];
scanf("%s %s",&a1,&b1);
m=strlen(a1);
n=strlen(b1);
if(m else k=m;
for(i=0;a1[i]!='\0';i++)
{ a[m-1]=a1[i]-48;
m--;
}
for(i=0;b1[i]!='\0';i++)
{ b[n-1]=b1[i]-48;
n--;
}
for(i=0;i { c[i]=a[i]+b[i]+j;
j=0;
if(c[i]>=10) /* 这里是大于等于 */
{ c[i]=c[i]%10;
j=1;
}
}
if (j==1) /* 如果最高位相加超过10需要进位 */
c[k++] = 1;
for(i=k-1;i>=0;i--)
printf("%d",c[i]);
printf("\n");

system("PAUSE");
return 0;
}

回答2:

除了那个错误外,还有就是短的那个数组最后几位要补0

回答3:

dev运行没有问题呀