#include <stdio.h>
int main()
{
char add1[40],add2[40];
char str1[48],str2[48],str3[50];
int len,len1,len2,i,j,k;
printf("被加数:");
scanf("%s",add1);
printf("加 数:");
scanf("%s",add2);
for(i=0;i<50;i++)
str3[i]=48;
for(i=0;i<48;i++)
str1[i]=48;
for(i=0;i<48;i++)
str2[i]=48;
for(i=0;add1[i]!='\0';i++)
len1=i;
for(i=0;add2[i]!='\0';i++)
len2=i;
if(len1>len2)
len=len1;
else
len=len2;
for(i=len1-1;i>=0;i--)
str1[len-len1+i]=add1[i];
str1[len]='\0';
for(i=len2-1;i>=0;i--)
str2[len-len2+i]=add2[i];
str2[len]='\0';
for(i=len-1;i>=0;i--)
{
j=(str1[i]-48)+(str2[i]-48)+(str3[i+1]-48);
if(j>9)
{
k=j-10;
str3[i+1]=k+48;
str3[i]=str3[i]+1;
}
else str3[i+1]=j+48;
}
str3[len+1]='\0';
printf("结 果:");
if(str3[0]=='0')
i=1;
else
i=0;
for(j=i;j<=len;j++)
printf("%c",str3[j]);
printf("\n");
return 0;
}
算len1 len2的时候算错了,应该是
for(i=0;add1[i]!='\0';i++);
len1=i;
for(i=0;add2[i]!='\0';i++);
len2=i;
或者
for(i=0;add1[i]!='\0';i++)
len1=i+1;
for(i=0;add2[i]!='\0';i++)
len2=i+1;