hdu 1002 怎么老是wrong answer ??? 搜了半天,还是找不出我的错误在哪里,各位大牛帮忙看一下啊!多谢了

很简单的题,也很郁闷!!!急求解!!!#include<stdio.h>#include<string.h>#defineN1005chara[N],b[N],c[N],... 很简单的题,也很郁闷!!!急求解!!!
#include<stdio.h>
#include<string.h>
#define N 1005
char a[N],b[N],c[N],sa[N],sb[N];
int main()
{
int i,j,t,num,lena,lenb,len,carry;
scanf("%d",&t);
getchar();
for(num=1;num<=t;num++)
{
memset(sa,0,sizeof(a[0]));
memset(sb,0,sizeof(b[0]));
memset(c,0,sizeof(c[0]));
scanf("%s%s",a,b);
lena=strlen(a);
lenb=strlen(b);
strcpy(sa,a);strcpy(sb,b);
strrev(sa);strrev(sb);
for(i=0;i<lena;i++)
sa[i]=sa[i]-'0';
for(j=0;j<lenb;j++)
sb[j]=sb[j]-'0';
len=lena>lenb?lena:lenb;
carry=0;
for(i=0;i<len;i++)
{
c[i]=sa[i]+sb[i]+carry;
carry=c[i]/10;
c[i]=c[i]%10;
}
if(carry==1)
{
c[i]=1;
i++;
}
c[i]='\0';len=i;
for(i=0;i<len;i++)
c[i]=c[i]+'0';
strrev(c);
printf("Case %d:\n",num);
printf("%s + %s = %s\n",a,b,c);
if(num!=t)
printf("\n");
}
return 0;
}
展开
 我来答
百度网友4387504
2010-09-02 · TA获得超过436个赞
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:266万
展开全部
当数据为:
2
111 9
9 111
就会发现错误,错误的原因就是没初始化
将相应的三句改为一下语句就能AC了
memset(sa,0,sizeof(a[0])*N);
memset(sb,0,sizeof(b[0])*N);
memset(c,0,sizeof(c[0])*N);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式