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

如题所述

方法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”);

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-23
if(number%2==0||number%2==1)是整数; //number对2取模,余数为0或1就是整数。
else 不是;

实际上,还可以在定义上取巧,比如说,把输入数N设为float ,另有一个 int M;
输入N后,
M=N;//强制把N取整赋给M
if(N==M)就是整数了。本回答被提问者采纳
第2个回答  2016-12-02
#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("输入的不是一个整数“);
第3个回答  2016-12-03
如果用实型变量x接收一个数或通过计算得到一个数后要知道它是不是整数,没有很好的办法。因为实数在计算机中不能准确地存储,所以不能直接判断两个实型量(x,与表示整数的实型量,必须要同类型的量才能比较)是否相等,首先要明确能允许的误差是多少。比如,一般情况当误差的绝对值小于10的负8次方时我们可以认为两个实数是相等的。所以,要使用math库。
#include
float x;
......
if(fabs(x-(int)x)<1e-8)printf("x是一个整数\n");
else printf("x不是一个整数\n");
第4个回答  2020-03-02
其实严格意义上来说,你们都想复杂了。
我们应该从问题角度出发,根本不用函数。
接下来我用c++来说明,其实c也同理
#include<bits/stdc++.h> 万能头挺好的
int main()
{
double a; 其实用不用double无所谓只要是浮点数即可
if(int(a)==a)cout<<"yes";else cout<<"no";
c语言用printf即可,强制转换进制,如果它原本就是整数,那么它就是1否则就0.
}
相似回答