杭电2015 为什么会运行出错。

[复制链接]
查看11 | 回复1 | 2011-2-17 01:10:37 | 显示全部楼层 |阅读模式
这是我的代码
#includestdio.h
int main()
{int n,m,i;
while(scanf(\\\"%d%d\\\",

a[0]=2; t=sum=0;

for(i=1;in;i) a=2 a[i-1];

for(i=0;in;i) { sum=sum a; t=t 1; if(t==m){t=0 ;printf(\\\"%d\\\",sum/m); sum=0;

if(i!=n-1)printf(\\\" \\\");}

}

if(t!=m) printf(\\\"%d\\\",sum/t);

printf(\\\"\\\\n\\\");

}
getchar();
return 0;
}
题目 <a href=\\\"http://acm.hdu.edu.cn/showproblem.php?pid=2015\\\" target=\\\"_blank\\\">http://acm.hdu.edu.cn/showproblem.php?pid=2015</a>
回复

使用道具 举报

千问 | 2011-2-17 01:10:37 | 显示全部楼层
<pre id=\\\"best-answer-content\\\">当你输入的n是m的整数倍时,并且处理到了最后一个数,我们分析一下:比如,输入 6 3
那么最后一个数时,t=3,m=3,满足t==m,于是t被赋值为0,然后输出了一个数后跳出了循环。
这时你的程序要输出sum/t。而上面已经赋值t=0,于是出现了运行时错误(Integer_Divided_By_Zero)。改正方法是把if (t!=m) 改成 if (t!=0)。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行