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