| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1303 人关注过本帖
标题:一个很诡异的问题
取消只看楼主 加入收藏
tanlinghang
Rank: 1
来 自:四川大学
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-11-1
结帖率:100%
收藏
 问题点数:0 回复次数:1 
一个很诡异的问题
我写的是一个不能称作游戏的游戏:电脑随机产生数字,使用者输入0-99个数字猜测,电脑给予提示,直到猜中,然后询问是否再play一次。问题就出在这。代码如下:
#include <stdlib.h>
#include <stdio.h>
void main()
{
     int result,guess;
     char again;
     game:  srand(time(NULL));
            result=rand()%100;
            play: printf("Please input a number which you think is lucky(0-99):");
                  scanf("%d",&guess);
                  if(guess<result)
                  {
                         printf("Your number is small.Please try again.\n");
                             goto play;
                  }
                  else if(guess>result)
                  {
                         printf("Your number is large.Please try again.\n");
                         goto play;
                     }
                  else
                  {
                         printf("You are right.Congratulations!\n");
                            printf("Do you want to play again?(Y or N):");
                         again=getchar();
                         again=getchar();
                         if(again=='Y')  goto game;
                     }
}
注意倒数第4 5排,用了2行again=getchar(); 而程序只执行了1行,更诡异的是,如果只写一行again=getchar(); 程序就直接跳过 然后级结束了;更更诡异的是,如果不是验证输入  Y 或 N  而是 1 或 0的话  用scanf("%d",&again); 的话 (当然 变量申明again 为 int型)  只需要一行,程序就能够顺利的进行···各位前辈,各位同辈···这是为什么捏··   (getchar()用scanf("%c",&again);代替有同样的问题)
搜索更多相关主题的帖子: 游戏 include number result 
2008-11-16 23:22
tanlinghang
Rank: 1
来 自:四川大学
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-11-1
收藏
得分:0 
寝室12点要断网了 先感谢2楼了来 再学习·····

Only by standing on the shoulder of the giant can I see farther and farther.
2008-11-16 23:58
快速回复:一个很诡异的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023284 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved