标题:problems
只看楼主
情义控灬浮云
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2017-8-3
结帖率:80.95%
已结贴  问题点数:20 回复次数:4 
problems
# include<stdio.h>
# include<math.h>
int main()
{
    int x,y,z;
    printf("请输入一个小于1000的正数:\n");
    scanf("%d",&x);
    while(x<=0||x>1000)
    {printf("您输入的值不符合要求,请重新输入:\n");gets(z);}
    y=sqrt(x);
    printf("结果为:%d\n",y);
}
这个我为啥输入了一个数之后程序就崩溃了?, 还有如果我想每次输入一个数都去验证一下要怎么做啊,求大师解析。
搜索更多相关主题的帖子: include int printf 输入 一个数 
2017-09-10 16:08
fsing
Rank: 1
等 级:新手上路
帖 子:4
专家分:9
注 册:2017-9-10
得分:5 
gets(z)?gets是从标准输入设备读字符串函数,用来读取数字可以吗?
2017-09-10 17:10
虾米小小小
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:30
专家分:135
注 册:2017-7-22
得分:5 
gets()函数是从stdio流中读入字符串的,gets(z)这种读取一个int型数据是真没见过......
看你程序只是想输入一个1000以内的正数并求出该数的平方根而已,那干嘛要三个变量呢?
# include<stdio.h>
# include<math.h>
int main()
{
    int x,y,z;
    printf("请输入一个小于1000的正数:\n");
    scanf("%d",&x);
    while(x<=0||x>1000)
    {
        printf("您输入的值不符合要求,请重新输入:\n");
        scanf("%d",&x);        
    }
    y=sqrt(x);
    printf("结果为:%d\n",y);
}
2017-09-10 17:33
mike_free
Rank: 3Rank: 3
来 自:CN
等 级:论坛游侠
威 望:1
帖 子:36
专家分:139
注 册:2017-8-25
得分:5 
因为你错误地使用了读取字符串的函数get(),要读取数字你还是要用scanf().

努力就是最大的收获
2017-09-12 08:39
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:5 
getchar()是读取字符,gets()是读取字符串
2017-09-12 21:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480593-1-1.html




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

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