HDU1002

小小鬼谷子 2011-10-11 08:38:45
#include <stdio.h>
#include <string.h>
char str1[1005],str2[1005];
int m1[1005],m2[1005],m3[1005];
int main()
{
int t,i,a;
int j;
int length1,length2;
int count=1;
scanf("%d",&t);
while(t--)
{
memset(m1,0,sizeof(m1));
memset(m2,0,sizeof(m2));
memset(m3,0,sizeof(m3));
scanf("%s%s",str1,str2);
length1=strlen(str1);
length2=strlen(str2);
for(j=length1-1,i=0; j>=0; j++)
m1[i++]=str1[j]-'0';
i=0;
for(j=length2-1;j>=0; j++)
m2[i++]=str2[j]-'0';
a=length1;
if(length1<length2)
a=length2;
int c=0;
for(i=0; i<a; i++)
{
m3[i]=(m1[i]+m2[i]+c)%10;
c=(m1[i]+m2[i]+c)/10;
}
printf("Case %d:\n",count++);
printf("%s + %s = ",str1,str2);
for(j=a-1; j>=0; j--)
{
if(m3[j])
break;
}
for(i=j; i>=0; i--)
printf("%d",m3[i]);
t?printf("\n\n") :printf("\n");
}
return 0;
}
为什么程序运行时老是自动关闭 还没输出正确答案呀
...全文
67 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
柯本 2011-10-11
  • 打赏
  • 举报
回复
这两个会导致无限循环,数据溢出
..
for(j=length1-1,i=0; j>=0; j++)
...
for(j=length2-1;j>=0; j++)
改成
..
for(j=length1-1,i=0; j>=0; j--)
...
for(j=length2-1;j>=0; j--)
就可以了
shilei_login 2011-10-11
  • 打赏
  • 举报
回复
两个for都错了,改为j--

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧