#include<stdio.h>
#include<string.h>
int main()
{
char n1[10000]={'0'};
char n2[10000]={'0'};
int result[10001]={0}; //最终的结果值
int t1[10000]={0};
int t2[10000]={0};
int len; //记录最长的那个数的字符串长度
int len1;//记录第一个数的字符串长度
int len2;//记录第二个数的字符串长度
int i,j;
printf("请输入第一个数:");
scanf("%s",&n1);
printf("请输入第二个数:");
scanf("%s",&n2);
printf("n1=%s\n",n1);
printf("n2=%s\n",n2);
len1=strlen(n1);
len2=strlen(n2);
printf("len1=%d len2=%d\n",len1,len2);
if(len1>len2)
{
len=len1;
}
else
{
len=len2;
}
for(i=0,j=len1-1 ; j>=0 ; i++,j--)
{
t1[i]=n1[j]-'0'; //第一个数:将每一个字符与'0'字符做差,得到的是它自己本身的数值
}
for(i=0,j=len2-1;j>=0;i++,j--)
{
t2[i]=n2[j]-'0'; //第二个数:将每一个字符与'0'字符做差,得到的是它自己本身的数值
}
printf("t1=");
for(i=0,j=len-1;j>=0;i++,j--)
{
printf("%d",t1[i]);
}
printf("\nt2=");
for(i=0,j=len-1;j>=0;i++,j--)
{
printf("%d",t2[i]);
}
printf("\n");
for(i=0;i<len;i++)
{
result[i] += t1[i]+t2[i]; //对应的每一位相加,
if(result[i]>9) //当大于9的情况就需要进位,进位进到i+1位,说明数组的高位对应数字的高位
{
result[i+1]++;
result[i]-=10;
}
}
if(result[len]>0)
{
len++;
}
printf("result=");
for(i=len-1;i>=0;i--)//数组的高位对应数字的高位,从高到低打印数的每一位
{
printf("%d",result[i]);
}
printf("\n");
return 0;
}