求C语言大神帮忙

[复制链接]
查看11 | 回复5 | 2011-10-10 13:24:34 | 显示全部楼层 |阅读模式
你这个程序运行没有问题,无限循环是因为你没有输入停止数-1。只有在第一个输入数为-1时才会停止循环。这就是while(a!=-1)的作用。但是你的这个程序是不健壮的。问题有几点:1.如果我第一次输入是-1时,由于没有进入循环,所以i=0;而后面要得到x/i,和y/i,这就存在除以0的情况。2.由于年龄和成绩是没有负数的。你只限定a不可以取-1,否则会结束循环。但是如果我让a=-2,循环并不会结束,而年龄和成绩是不可以为负的。所以会有问题,修改很简单:while(a>0&&b>=0);这里保证年龄为正,成绩非负。...
回复

使用道具 举报

千问 | 2011-10-10 13:24:34 | 显示全部楼层
死循环的可能只有一种就是你输入数据的时候 出得问题 假设你输入a=-1, b=2这时候按照代码的话应该会跳出循环 可是如果你直接输-12 那就不对了 这样就是a=-12 无论你怎么输入都得不到a=-1了
应该-1 回车2回车 或者-1空格2回车 这样输入不知道是不是这个问题 ~~~程序没问题。...
回复

使用道具 举报

千问 | 2011-10-10 13:24:34 | 显示全部楼层
你的程序完全没有问题,关键是你要输入-1就行第二个程序的运行结果如下:...
回复

使用道具 举报

千问 | 2011-10-10 13:24:34 | 显示全部楼层
效果一样只是你第一次没输入 -1这个数...
回复

使用道具 举报

千问 | 2011-10-10 13:24:34 | 显示全部楼层
。。。。printf("在继续输入一个学生的年龄和成绩:");scanf("%d,%d",&a,&b);。。。。"%d,%d" 要和后面的格式对应,要加一个“,”...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行