//#include<iostream>
#include<stdio.h>
#include<string.h>
//#include<algorithm>
//using namespace std;
int main()
{
char str[1100],str1[1100],str2[1100];
int i;
int n;
int serialnumber;
int k1,k2;
int t;
int p;
while(scanf("%d",&n)!=EOF)
{
serialnumber=1;
while(n--)
{
t=0;
//printf("%d\n",n);
scanf("%s%s",str1,str2);
printf("Case %d:\n",serialnumber);
printf("%s + %s = ",str1,str2);
serialnumber++;
k1=strlen(str1)-1;
k2=strlen(str2)-1;
p=0;
for( ;k1>=0||k2>=0;k1--,k2--)
{
if(k1>=0&&k2>=0)
{
str[t]=str1[k1]+str2[k2]-'0'+p;
}
if(k1>=0&&k2<0)
{
str[t]=str1[k1]+p;
}
if(k1<0&&k2>=0)
{
str[t]=str2[k2]+p;
}
p=0;
if(str[t]>'9')
{
p=1;
str[t]=str[t]-10;
}
t++;
}
if(p==1)
printf("1");
for(i=t-1;i>=0;i--)
printf("%c",str[i]);
printf("\n");
if(n!=0)
printf("\n");//此处不用清零了
//memset(str1,0,sizeof(str1));
//memset(str2,0,sizeof(str2));
//memset(str,0,sizeof(str));
}
}
} 下面这种代码更加简单
<pre name="code" class="cpp">#include<iostream>
#include<cstring>
#define max 1200
using namespace std;
int main()
{
char str1[1200],str2[1200];
int num1[1200],num2[1200];
int len1,len2;
int i,j;
int t;
int l=1;
scanf("%d",&t);
while(t)
{
scanf("%s%s",str1,str2);
printf("Case %d:\n",l);
printf("%s + %s = ",str1,str2);
len1=strlen(str1);
len2=strlen(str2);
for(i=0;i<max;i++)
{
num1[i]=0;
num2[i]=0;
}
for( j=0,i=len1-1; i>=0 ;i-- )
{
num1[j]=str1[i]-'0';
j++;
}
for( j=0,i=len2-1; i>=0 ;i-- )
{
num2[j]=str2[i]-'0';
j++;
}
for(i=0;i<max;i++)
{
num1[i]=num1[i]+num2[i];
if(num1[i]>=10)
{
num1[i]=num1[i]-10;
num1[i+1]++;
}
}
for(i=max-1 ; i>=0&&num1[i]==0 ; i--);
if(i>=0)
{
for( ;i>=0; i--)
printf("%d",num1[i]);
}
else
printf("0");
printf("\n");
if(t!=1)
printf("\n");
l++;
t--;
}
return 0;
}