代码仅供参考,勿拷贝作为课堂派作业!!!
#include<stdio.h>
#include<string.h>
int a[100];
int main()
{
int t;
int i,l1,l2;
int index;
char s1[100],s2[100];
scanf("%d",&t);
while(t--)
{
memset(a,0,sizeof(a));
scanf("%s%s",s1,s2); ///读入数字串
l1=strlen(s1)-1;
l2=strlen(s2)-1;
index=0;
while(l1>=0&&l2>=0) ///相加直到走完其中一个串
{
if(a[index]+(s1[l1]-'0')+(s2[l2]-'0')>=10)
{
a[index]=a[index]+(s1[l1]-'0')+(s2[l2]-'0')-10;
a[index+1]++;
}
else
a[index]=a[index]+(s1[l1]-'0')+(s2[l2]-'0');
index++;
l1--;
l2--;
}
if(l1<0)
{ ///如果第一个串比第二个短
for(i=l2;i>=0;i--)
{
a[index]=a[index]+s2[i]-'0';
index++;
}
}
else if(l2<0)
{ ///如果第二个串比第一个短
for(i=l1;i>=0;i--)
{
a[index]=a[index]+(s1[i]-'0');
index++;
}
}
printf("%s + %s =",s1,s2);
for(i=index-1;i>=0;i--)
{ ///输出
printf("%d",a[i]);
}
putchar('\n');
}
return 0;
}