XiaoHui.net 笑汇程序员论坛首页
工作并快乐着,职业并休闲着
寻梦的岁月从不言辛苦几许,
不问收获几多……
» 游客:  申请新用户 | 登录 | 会员 | 统计 | 帮助 » XiaoHui.Net 笑汇程序员论坛 | 纯文字版 | 全站索引 | XiaoHui.com


[其他] 请教一个程序的问题

RSS 订阅当前论坛  

上一主题 下一主题
     

标题: [其他] 请教一个程序的问题  
 
麦子
小水手
Rank: 1



UID 30865
精华 0
积分 2
帖子 2
阅读权限 10
注册 2007-12-15
状态 离线
请教一个程序的问题

/*这是一个C的猜数字的游戏,在1-100的数字中随机产生一个数,然后让玩家去猜。且最多只能猜10次。
*/
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"

main()
{
  int count,number,guess;
  char choice;
  clrscr();
  printf("Welcome to play this number game!!  you will have 10 trys.\n");
  printf("Start?(Y/N)\n");
  scanf("%c",&choice);
  if(toupper(choice)=='N')
  exit(0);
  while(toupper(choice)=='Y')
  {
    count=0;
    randomize();
    number=random(100)+1;
    printf("\nInput an integer number(1-100):");
    scanf("%d",&guess);
    while(!(guess==number))
    {count++;

     if(guess>number)
     printf("\nYour answer is High,try again.");

     if(guess<number)
     printf("\nYour answer is Low,try again.");

     if(count==5)
     printf("\nBe careful! You have tried %d times!!",count);

     if(count==10)
     {
      printf("\nYou have tried  %d times.GAME OVER!",count);
      printf("\nNext?(Y/N)");
      scanf("%c",&choice);
      if(toupper(choice)=='N')
      exit(0);
      if(toupper(choice)=='Y')
      break;

      }

     printf("\nInput an integer number(1-100):");
     scanf("%d",&guess);

    }/*没有猜对时的情形*/


    while(guess==number)
    {
     printf("\nCongratulations! You are so clever!");
     printf("\n Beat youself! try again?(Y/N)");
     scanf("%c",&choice);
      if(toupper(choice)=='N')
      exit(0);
      if(toupper(choice)=='Y')
      break;
    }/*猜对时的情形*/
  }

}

我不明白C中是否可以在WHILE中嵌套一个WHILE再嵌套IF语句,然后在IF语句中用SCANF语句。我做了个其他的例子,发现又可以。
可是,我在程序中当COUNT>10时,没有显示SCANF语句和接下来的判断直接又进入了下次的游戏。

请高手分析一下,谢谢了~
2007-12-25 12:08#1
查看资料  Blog  发短消息  顶部
 
FlyFire
传说中的水手
Rank: 5Rank: 5


UID 4
精华 1
积分 330
帖子 320
阅读权限 1
注册 2001-1-25
来自 暴力球场
状态 离线
我也觉得是可以的。

建议你做一下调试输出,这样的话,可以看清整个程序的运行流程。


Don't say good bye....
2007-12-30 23:21#2
查看资料  Blog  发短消息  顶部
 
luluwenwen
传说中的水手
Rank: 5Rank: 5



UID 176
精华 0
积分 683
帖子 683
阅读权限 1
注册 2003-6-24
来自 哈尔滨
状态 离线
if(count==10) // 就是这句的问题
     {
      count = 0; //count要清零
      printf("\nYou have tried  %d times.GAME OVER!",count);
      printf("\nNext?(Y/N)");
      scanf("%c",&choice);
      if(toupper(choice)=='N')
      exit(0);
      if(toupper(choice)=='Y')
      break;

      }


www.lovevc.cn
2007-12-31 14:59#3
查看资料  访问主页  Blog  发短消息  顶部
 
麦子
小水手
Rank: 1



UID 30865
精华 0
积分 2
帖子 2
阅读权限 10
注册 2007-12-15
状态 离线
谢谢楼上花时间看,但 尝试了一下令count=0;但还是没有解决。不知道还有其他解决方法没?

[ 本帖最后由 麦子 于 2008-1-1 23:16 编辑 ]
2008-1-1 23:11#4
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题  


 


所有时间为 GMT+8, 现在时间是 2008-12-2 09:34 Powered by Discuz! 4.1.0 清除 Cookies - XiaoHui.Net 笑汇程序员论坛 - Archiver