一个很简单的猜数字程序,但是遇到问题,请大家赐教
老师布置的一个猜数字游戏的作业,就是先让电脑随机生成一个数,然后自己输入一个数,如果这个数比电脑随机生成的大,电脑显示UP,小就显示DOWN,对了就显示congradulations,但是我现在的问题是但数字大的时候程序就结束了,无也知道问题应该是出在IF语句那里,但是不知道改怎么修改,请大家赐教啊,感激万分。[bo]但是老师要求不能用BREAK语句[/bo]代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
int a,b;
srand (time (NULL) );
a = rand() % 100;
while(a<b,a>b)
{
scanf ( "%d", &b);
if(b>a)
printf("up\n");
else
printf("down\n");
}
printf("congradulations\n");
}
[[it] 本帖最后由 hopepark 于 2008-4-5 00:54 编辑 [/it]]
搜索更多相关的解决方案:
数字
----------------解决方案--------------------------------------------------------
while(a<b||a>b)
{
scanf ( "%d", &b);
if(b>a)
printf("up\n");
else
printf("down\n");
}
while的条件里用逗号不对啊,这样while只检验a>b了,当然会退出了。
----------------解决方案--------------------------------------------------------
同意
同意2#! ----------------解决方案--------------------------------------------------------
哈哈,原来是这里的问题啊,十分感谢,以后要多注意这些细节了
----------------解决方案--------------------------------------------------------
最好在while前加一句b=a;初始化一下
不然可能会直接退出
----------------解决方案--------------------------------------------------------
请问能说得再详细些吗?
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]hopepark[/un] 在 2008-4-5 11:11 的发言:[/bo]
请问能说得再详细些吗?
请问能说得再详细些吗?
你第一次执行while的时候会先判断是否进入下面的程序
你a生成随机数,b是个未初始化的值
这样就判断是很危险的
----------------解决方案--------------------------------------------------------
哦,哈哈,我还太菜了
----------------解决方案--------------------------------------------------------