自己编的测试样例:
28+89
99+3
1+1
#include<stdio.h>
#include<string.h>
#define MAX 600
char c[MAX];
char a[MAX];
char b[MAX];
int main()
{
int i,temp,index=0, a_length,b_length,length=0;
gets(a);
gets(b);
a_length = strlen(a);
b_length = strlen(b);
for(i=0;i<MAX;i++)
{
c[i]='0';
}
while(1)
{
if(a_length != 0 && b_length != 0)
{
temp=(a[a_length-1]-'0')+(b[b_length-1]-'0');
}
else if(a_length != 0 && b_length == 0)
{
temp=a[a_length-1]-'0';
}
else if((a_length == 0) && b_length != 0)
{
temp=b[b_length-1]-'0';
}
else
{
break;
}
if(temp+c[index]-'0'>=10)
{
c[index+1]++;
}
c[index] = (temp+c[index]-'0')%10+'0';
index++;
if(a_length>0)
a_length--;
if(b_length>0)
b_length--;
}
if(c[index]!='0')
{
printf("%c",c[index]);
}
for(i=index-1;i>=0;--i)
{
printf("%c",c[i]);
}
return 0;
}