你看看我的吧,这是好久之前的代码,我好像也是提交了好多次才提交上
#include
#include
using namespace std;
void add(char a[],char b[],char back[])
{
int i,j,k,up,x,y,z,l;
char *c;
if (strlen(a)>strlen(b)) l=strlen(a)+2; else l=strlen(b)+2;
c=(char *) malloc(l*sizeof(char));
i=strlen(a)-1;
j=strlen(b)-1;
k=0;up=0;
while(i>=0||j>=0)
{
if(i<0) x='0'; else x=a[i];
if(j<0) y='0'; else y=b[j];
z=x-'0'+y-'0';
if(up) z+=1;
if(z>9) {up=1;z%=10;} else up=0;
c[k++]=z+'0';
i--;j--;
}
if(up) c[k++]='1';
i=0;
c[k]='\0';
for(k-=1;k>=0;k--)
back[i++]=c[k];
back[i]='\0';
}
int main()
{
char a[1000], b[1000], c[1005];
int n;
cin >> n;
int i;
for( i = 1; i <= n; i++ )
{
cin >> a >> b;
cout << "Case " << i << ":" << endl;
char *x = a;
while( x[0] == '0')
{
if( x[1] != '\0' )
x++;
else
break;
}
cout << x << " + ";
x = b;
while( x[0] == '0' )
if( x[1] != '\0' )
x++;
else
break;
cout << x << " = ";
add( a, b, c );
x = c;
while( x[0] == '0' )
if( x[1] != '\0' )
x++;
else
break;
cout << x << endl;
if( i != n )
cout << endl;
}
return 0;
}
希望采纳