大数加问题
各种情况要考虑清楚,wrong answer了好多次
#include<stdio.h>
#include<string.h>
char a[1005],b[1005];
int c[1005];
int Add() {
int i,j,k,s,post=0;
i=strlen(a)-1,j=strlen(b)-1;
if (i<j) k=j+2;
else k=i+2;
c[k+1]=30;
for(;i>=0 || j>=0;i--,j--,k--) {
s=0;
if (i>=0) s=a[i]-'0';
if (j>=0) s+=b[j]-'0';
if (post==1) s++,post=0;
if (s>=10) {
s-=10;
post=1;
}
c[k]=s;
}
if (post==1) s++,c[k--]=1;
return k+1;
}
int main() {
int T;
scanf("%d",&T);
int i,j;
for(i=1;i<=T;i++) {
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
scanf("%s%s",a,b);
printf("Case %d:\n",i);
printf("%s + %s = ",a,b);
j=Add();
for(;c[j]!=30;j++) {
printf("%d",c[j]);
}
if (i!=T) printf("\n\n");
else printf("\n");
}
}