杭电oj1002 高精度加法
测试什么的感觉都没问题,但是始终是WA
题目如下
我的代码如下
#include <iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<minmax.h>
using namespace std;
char s1[1050]={0},s2[1050]={0};
int a[1050]={0},b[1050]={0},c[1050]={0};
int main()
{
int n=1;
int lena,lenb,lenc,T;
while(scanf("%d",&T) != EOF){
while(T--){
scanf("%s%s",&s1,&s2);
lena = strlen(s1);
lenb = strlen(s2);
for(int i=0; i<lena; i++)
a[lena-i] = s1[i] - '0';
for(int i=0; i<lenb; i++)
b[lenb-i] = s2[i] - '0';
lenc = max(lena,lenb) + 1;
for(int i=1; i<=lenc; i++){
c[i] += a[i] + b[i];
c[i+1] = c[i]/10;
c[i] = c[i]%10;
}
for(int i=1; i<=lenc; i++){
if(c[lenc] == 0 && lenc > 0)
{
lenc--;
if(lenc==1)
break;
}
}
printf("Case %d:\n",n++);
printf("%s + %s = ",s1,s2);
for(int i=lenc; i>0; i--){
printf("%d",c[i]);
c[i] = 0;
}
printf("\n");
if(T != 0)
printf("\n");
}
n = 1;
}
return 0;
}