分析:用字符串模拟数的加法。
#include<stdio.h>
#include<string.h>
#define N 1000
char str1[N],str2[N];
int ans1[N+10],ans2[N+10];
int main()
{
int t;
int k;
scanf("%d",&t);
k=0;
while(t--)
{
int i,j;
int len1,len2;
memset(ans1,0,sizeof(ans1));
memset(ans2,0,sizeof(ans2));
scanf("%s%s",str1,str2);
len1=strlen(str1);
len2=strlen(str2);
k++;
printf("Case %d:\n",k);
printf("%s + %s = ",str1,str2);
for(i=len1-1,j=0;i>=0;i--)//要考虑进位,将数字逆序存放到数组中
{
ans1[j]=str1[i]-'0';
j++;
}
for(i=len2-1,j=0;i>=0;i--)
{
ans2[j]=str2[i]-'0';
j++;
}
for(i=0;i<N;i++)
{
ans1[i]+=ans2[i];
if(ans1[i]>=10)
{
ans1[i]-=10;
ans1[i+1]++;
}
}
for(i=N;i>=0&&ans1[i]==0;i--)//数字逆序存放在数组中,输出时应确保高位的零不被输出。
;
if(i>=0)
{
for(;i>=0;i--)
printf("%d",ans1[i]);
}
else
printf("0");
printf("\n");
if(t)
printf("\n");
}
return 0;
}