| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 581 人关注过本帖
标题:简单的猜数程序,求指教,有疑惑啊!!
只看楼主 加入收藏
zhj150680132
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-10-27
收藏
 问题点数:0 回复次数:5 
简单的猜数程序,求指教,有疑惑啊!!
下面这段程序是简单的猜数程序,这里我有几个问题不懂啊!
1,这个防止非法输入的ret应该怎么定义。
2,为什么我输入数字之后都能显示正确输出,但是一旦输入字母之后,在输入一个数字程序就自动崩溃!!

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
    int guess,count=0,i=1;
    float magic;
    float ret;
    srand(time(NULL));
    magic=rand()%100+1;
    do{
        printf("please input guess:\n");
        ret=scanf("%d",&guess);
        while(ret!=1)
        {
            while(getchar()!='\n');
            printf("plese input a guess:\n");
            ret=scanf("%d",guess);
        }
        count++;
        if(guess>magic)
        {
            printf("the guess too high\n");
        }
        else if(guess<magic)
        {
            printf("the guess too low\n");
        }
        else
        {
            printf("you are right\n");
        }
        printf("count=%d\n",count);
        i++;
    }while(guess!=magic&&i<10);
}
搜索更多相关主题的帖子: include please guess count 
2014-10-29 17:50
zhj150680132
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-10-27
收藏
得分:0 
第二个问题解释一下就是我运行的时候输入一个字母之后运行结果正确,但是再输入一个正确的数字,程序自动提示终止。这是怎么回事啊!!
2014-10-29 17:53
Sv少
Rank: 3Rank: 3
来 自:山东青岛
等 级:论坛游侠
威 望:1
帖 子:53
专家分:168
注 册:2011-11-7
收藏
得分:0 
ret=scanf("%d",guess);

Sv少  run
2014-10-29 19:02
Sv少
Rank: 3Rank: 3
来 自:山东青岛
等 级:论坛游侠
威 望:1
帖 子:53
专家分:168
注 册:2011-11-7
收藏
得分:0 
while(ret!=1)//???? 你想无限循环还是你确定这个随机数就是1????
        {
            while(getchar()!='\n');//这个东东是不是去掉多余的输入???
            printf("plese input a guess:\n");
            ret=scanf("%d",guess);//???? &guess????
        }
看不懂???

Sv少  run
2014-10-29 19:07
zhj150680132
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-10-27
收藏
得分:0 
回复 3 楼 Sv 少
谢谢啦
2014-10-29 19:17
zhj150680132
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2014-10-27
收藏
得分:0 
回复 4 楼 Sv 少
ret=scanf("%d",&guess);
while(ret!=1)当输入的成功数不为1的时候执行下面的循环。
        {
            while(getchar()!='\n');当输入不是回车键的时候,一直进行,输入回车键之后就打印出plese input a guess
            printf("plese input a guess:\n");
            ret=scanf("%d",&guess);
        }
这段程序本来只要scanf("%d",&guess)就可以实现我们要猜的数字输入,但是不这么写那我们我们输入字母等一些非法字符就会变成死循环。所以这么写就是为了防止我们误输入。你可以试一下。
2014-10-29 19:27
快速回复:简单的猜数程序,求指教,有疑惑啊!!
数据加载中...
 
   



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

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