求助,我自己测试的时候输出的结果是对的,但是如果输入的太长了就不输出了
#include<cstdio>
#include<algorithm>
using namespace std;
char a[601], b[601];
int sum[601];//最终结果
int main(){
int i;
for(i=0;;i++)
{
a[i]=getchar();
if(a[i]=='\n'){
a[i]=0;
break;
}
}
i-=1;
int j;
for(j=0;;j++)
{
b[j]=getchar();
if(b[j]=='\n'){
b[j]=0;
break;
}
}
j-=1;
int jin=0;//进位
int wei=max(i,j);
for(int k=wei; k>=0; k--)
{
if(min(i,j)>=0)
{
sum[k]=(a[i]-48+b[j]-48+jin)%10;
if(a[i]-48+b[j]-48+jin>=10)
jin=1;
else jin=0;
}
if(min(i,j)<0)
{
if(i>=j)
{
sum[k]=a[k]-48+jin;
if(sum[k]==10)
jin=1;
else jin=0;
sum[k]=sum[k]%10;
}
else
{
sum[k]=b[k]-48+jin;
if(sum[k]==10)
jin=1;
else jin=0;
sum[k]=sum[k]%10;
}
}
i-=1;
j-=1;
}
if(jin==1)
{
printf("1");
for(int k=0;k<=wei;k++)
printf("%d", sum[k]);
}
else
{
for(int k=0;k<=wei;k++)
printf("%d", sum[k]);
}
printf("\n");
//printf("%d", i);
return 0;
}