杭电ACM HDOJ 1002 高精度加法 我的程序哪里错了?请测试下.
答案:3 悬赏:30 手机版
解决时间 2021-01-09 01:35
- 提问者网友:战魂
- 2021-01-08 12:19
杭电ACM HDOJ 1002 高精度加法 我的程序哪里错了?请测试下.
最佳答案
- 五星知识达人网友:轻雾山林
- 2021-01-08 13:12
你的答案是完全正确的,只是你不能先把“Case”打出来再输入。
所以你要把这句printf("Case %d:\n",k);放到scanf("%s",a);后面,printf("%s + ",a);的前面,修改后就能AC了。
所以你要把这句printf("Case %d:\n",k);放到scanf("%s",a);后面,printf("%s + ",a);的前面,修改后就能AC了。
全部回答
- 1楼网友:玩家
- 2021-01-08 14:51
Case输出的顺序不对。。。
我AC代码,仅供参考。。
#include
#include
int main()
{
int t;
int i,j,k;
int len1,len2;
char a[100000],b[100000],c[100000];
scanf("%d",&t);
for(k=1;k<=t;k++)
{
scanf("%s %s",a,b);
printf("Case %d: ",k);
printf("%s + %s = ",a,b);
len1=strlen(a);
len2=strlen(b);
if(len1==len2)
{
for(i=len1-1;i>=0;i--)
c[i]=a[i]+b[i]-'0';
for(i=len1-1;i>0;i--)
{
if(c[i]>'9')
{
c[i]-=10;
c[i-1]+=1;
}
}
if(c[0]>'9')
{
printf("1");
c[0]-=10;
}
for(i=0;i
printf(" ");
}
else if(len1>len2)
{
for(i=0;i
for(i=len1-len2,j=0;i
for(i=len1-1;i>0;i--)
{
if(c[i]>'9')
{
c[i]-=10;
c[i-1]+=1;
}
}
if(c[0]>'9')
{
printf("1");
c[0]-=10;
}
for(i=0;i
printf(" ");
}
else
{
for(i=0;i
for(i=len2-len1,j=0;i
for(i=len2-1;i>0;i--)
{
if(c[i]>'9')
{
c[i]-=10;
c[i-1]+=1;
}
}
if(c[0]>'9')
{
printf("1");
c[0]-=10;
}
for(i=0;i
printf(" ");
}
if(k
}
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯