当前位置: 代码迷 >> C语言 >> 一个很简单的猜数字程序,但是遇到问题,请大家赐教
  详细解决方案

一个很简单的猜数字程序,但是遇到问题,请大家赐教

热度:144   发布时间:2008-04-05 00:53:17.0
一个很简单的猜数字程序,但是遇到问题,请大家赐教
老师布置的一个猜数字游戏的作业,就是先让电脑随机生成一个数,然后自己输入一个数,如果这个数比电脑随机生成的大,电脑显示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是个未初始化的值
这样就判断是很危险的
----------------解决方案--------------------------------------------------------
哦,哈哈,我还太菜了
----------------解决方案--------------------------------------------------------