| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3348 人关注过本帖
标题:c语言scanf函数要求输入整数,但输入的是小数如何检测出来
只看楼主 加入收藏
dtxwz
Rank: 2
等 级:论坛游民
帖 子:79
专家分:45
注 册:2011-9-18
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
c语言scanf函数要求输入整数,但输入的是小数如何检测出来
scanf("%lld",&n);
if(!(n>0&&n<1e16))
printf("error,please input (0<n<10^16)\n");
搜索更多相关主题的帖子: c语言 scanf 输入 小数 检测 
2017-10-14 17:10
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
有问得功夫 自己多做几次实验  估计不是取0 就是截取

DO IT YOURSELF !
2017-10-15 07:52
dtxwz
Rank: 2
等 级:论坛游民
帖 子:79
专家分:45
注 册:2011-9-18
收藏
得分:0 
回复 2楼 wp231957
0.12就是0。 10.6就是10。但是不知道如何检测出输的是小数啊。
2017-10-15 13:19
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
收藏
得分:20 
新人蠢办法
程序代码:
#include<stdio.h>
#include<math.h>
int main()
{
    long long int n=0;
    int m=0,i=0,flag=1;
    char a[20];
    
    scanf("%s",a);
    for(i=0;i<20&&a[i]!='\0';i++)
    {
        if(!(a[i]>='0'&&a[i]<='9'||a[i]=='-'))
        {
            flag=0;
            break;
        }
        m++;
    }
    if(flag)
    {
        for(i=0;i<m;i++)
        {
            n=n+(a[i]-48)*pow(10,(m-i));
            n/=10;
            if(a[i]=='-')
                printf("error!please input (0<n<10^16)\n");break;
            if(!(n>0&&n<1e16))
            printf("error!please input (0<n<10^16)\n");
        }
    }    
    else
        printf("错误,不是整数!\n");
    return 0;
}


[此贴子已经被作者于2017-10-15 16:18编辑过]

2017-10-15 14:38
pydlq
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:129
专家分:488
注 册:2017-9-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-10-15 16:21
快速回复:c语言scanf函数要求输入整数,但输入的是小数如何检测出来
数据加载中...
 
   



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

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