计算高精度加法。有时输入一些数据可以得出正确答案,可有一些数据输入时,输出的却是错误答案?
#include <stdio.h>#include <stdlib.h>
#include<string.h>
int main()
{
int m,n,k,i,j,t=0,max,temp;
char a[80],b[80],c[200];
gets(a);gets(b);
m=strlen(a);
n=strlen(b);
if(m>=n) max=m;
else max=n;
for(i=0;i<m;i++) a[i]=a[i]-48;
for(j=0;j<n;j++) b[j]=b[j]-48;
for(i=0;i<=(m-1)/2;i++)
{
temp=a[i];
a[i]=a[m-i-1];
a[m-i-1]=temp;
}
for(j=0;j<=(n-1)/2;j++)
{
temp=b[j];
b[j]=b[n-j-1];
b[n-j-1]=temp;
}
for(k=0;k<max;k++)
{
c[k]=a[k]+b[k]+t;
if(c[k]>=10)
{
t=c[k]/10;
c[k]=c[k]%10;
}
else t=0;
printf("%d",c[k]);
}
if(t!=0)
{
c[max]=t;
printf("%d",c[max]);
}
return 0;
}