c语言怎么判断一个数是不是整数

 我来答
问明6E
高粉答主

2019-06-03 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.5万
展开全部

方法1:

#include<stdio.h>

#include<math.h>

float x;

...

if(fabs(x-(int)x)<1e-8)printf(“x是一个整数\n”);

else printf(“x不是一个整数\n”);

方法2:

int c=(int)b,d=(int)(b+0.999999)

if(c==d)

printf(“是整数\n”);

else

printf(“不是整数\n”);

方法3:

float b;

...

if(b-(int)b==0)

printf(“是整数\n”);

else

printf(“不是整数\n”);

方法4:

float b;

...

if(b!=(int)b)

printf(“不是整数\n”);

else

printf(“是整数\n”);

fallx
推荐于2017-11-23 · TA获得超过5485个赞
知道大有可为答主
回答量:2321
采纳率:73%
帮助的人:703万
展开全部
if(number%2==0||number%2==1)是整数; //number对2取模,余数为0或1就是整数。
else 不是;

实际上,还可以在定义上取巧,比如说,把输入数N设为float ,另有一个 int M;
输入N后,
M=N;//强制把N取整赋给M
if(N==M)就是整数了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
真忙得很
2016-12-02 · TA获得超过723个赞
知道小有建树答主
回答量:336
采纳率:77%
帮助的人:96.3万
展开全部
#include <stdio.h>
int main(void) {

int a;
while (scanf_s("%d", &a) == 1)
printf("输入的是一个整数");
printf("输入的不是一个整数");
}
这里while(scanf("%d",&a)==1)代表如果输入的是一个整数就返回1并执行printf("输入的是一个整数“);如果不是就返回0,退出循环,并执行printf("输入的不是一个整数“);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2016-12-03 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
如果用实型变量x接收一个数或通过计算得到一个数后要知道它是不是整数,没有很好的办法。因为实数在计算机中不能准确地存储,所以不能直接判断两个实型量(x,与表示整数的实型量,必须要同类型的量才能比较)是否相等,首先要明确能允许的误差是多少。比如,一般情况当误差的绝对值小于10的负8次方时我们可以认为两个实数是相等的。所以,要使用math库。
#include
float x;
......
if(fabs(x-(int)x)<1e-8)printf("x是一个整数\n");
else printf("x不是一个整数\n");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cao08
2020-03-02
知道答主
回答量:2
采纳率:0%
帮助的人:1277
展开全部
其实严格意义上来说,你们都想复杂了。
我们应该从问题角度出发,根本不用函数。
接下来我用c++来说明,其实c也同理
#include<bits/stdc++.h> 万能头挺好的
int main()
{
double a; 其实用不用double无所谓只要是浮点数即可
if(int(a)==a)cout<<"yes";else cout<<"no";
c语言用printf即可,强制转换进制,如果它原本就是整数,那么它就是1否则就0.
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式