高精度加法疑问
#include<stdio.h> #include<string.h>
#define N 100
main()
{
void add(char a[],char b[],char c[]);
char a[N],b[N];
char str[N];
scanf("%s%s",a,b);
add(a,b,str);
printf("%s",str);
}
void add(char a[],char b[],char c[])
{
int i,e,d;
int n,m;
char temp;
n=strlen(a);
m=strlen(b);
for(i=0;i<n/2;i++) {temp=a[i];a[i]=a[n-1-i];a[n-1-i]=temp;}
for(i=0;i<m/2;i++) {temp=b[i];b[i]=b[m-1-i];b[m-1-i]=temp;}
e=0;
for(i=0;i<n&&i<m;i++)
{
d=a[i]-'0'+b[i]-'0'+e;
e=d/10;
c[i]=d%10+'0';
}
if(i<m)
{
for(;i<m;i++)
{
d=b[i]-'0'+e;
e=d/10;
c[i]=d%10+'0';
}
}
else
{
for(;i<n;i++)
{
d=a[i]-'0'+e;
e=d/10;
c[i]=d%10+'0';
}
}
if(e) c[i++]=e+'0';
c[i]=0;
n=i;
for(i=0;i<n/2;i++) {temp=c[i];c[i]=c[n-1-i];c[n-1-i]=temp;}
}
倒数第三行c【i】=0啥意思,为什么去掉就不对了