注意大数组声明要放在函数外
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
#define MAX_LENGTH 1005
char str_a[MAX_LENGTH],str_b[MAX_LENGTH];
int a[MAX_LENGTH];
int main(){
int round;
scanf("%d",&round);
for(int roundNum=0;roundNum<round;++roundNum){
bool exchange= false;
// fflush(stdin);
scanf(" %s%s",str_a,str_b);
// printf("a:%s| b:%s|",str_a,str_b);
memset(a,0, sizeof(a));
if(strlen(str_a)>strlen(str_b)){
swap(str_a,str_b);
exchange = true;
}
int len_a=strlen(str_a),len_b=strlen(str_b);
// b is longer
int c=0;
for(int i=0;i<len_a;++i)a[len_a-i-1]=str_a[i]-'0';
for(int i=0;i<len_b;++i){
a[i] = a[i]+c+str_b[len_b-i-1]-'0';
c = a[i]/10;
a[i] = a[i]%10;
}
if(c)a[len_b]=c;
while(a[len_b]==0&&len_b>0)--len_b;
if(roundNum>0)printf("\n");
if(exchange){
printf("Case %d:\n%s + %s = ", roundNum+1,str_b,str_a);
}
else printf("Case %d:\n%s + %s = ", roundNum+1,str_a,str_b);
while(0<=len_b){
if(len_b==0){
printf("%d\n",a[len_b--]);
}
else printf("%d",a[len_b--]);
}
}
}