#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;
}