大模拟做法,转换成数组,然后就根据加法进行运算。
#include<stdio.h>
#include<string.h>
#define MAX 1010
char str1[MAX],str2[MAX];
int a[MAX],b[MAX],c[MAX];
int main()
{
int t;
int kase=0;
printf("%d",&t);
while(t--)
{
memset(a,0,sizeof(a));//对数组初始化
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
printf("%s %s",str1,str2);
printf("Case %d:\n",++kase);
printf("%s + %s = ",str1,str2);
int len1=strlen(str1);
int len2=strlen(str2);
for(int i=len1-1,j=0;i>=0;i--)
{
a[j++]=str1[i]-'0';
}
for(int i=len2-1,j=0;i>=0;i--)
{
b[j++]=str2[i]-'0';
}
for(int i=0;i<MAX;i++)
{
c[i]+=a[i]+b[i];
if(c[i]>=10)
{
c[i]=c[i]%10;//满十进一
c[i+1]++;
}
}
int j;
for(j=MAX-1;c[j]==0;j--);//避免高位等于0
if(j<0)
printf("0");
else
{
for(;j>=0;j--)
printf("%d",c[j]);
}
}
return 0;
}