C语言,判断输入的数是否是正整数?

我定义一个数int num 并且scanf 这个数我如何判断我输入的这个数是否是正整数呢?即使我输入的小数也会被int 化,所以我不会判断
具体问题如下:输入前要有提示。并检查输入数据的合法性,若输入的数据不合法,则显示输出错误信息。(要判断输入的数据是否是正整数),,,可能我的定义是错的,请教教我谢谢!

思路是:一个小数浮点变量和一个整型变量。输入浮点变量,先然后将浮点变量中存储的数赋值到整型变量中,整型变量自动去除小数部分。将两者比较,如果浮点变量等于整形变量,并且还要看一下是不是正数。如果满足这两点,就说明浮点变量小数点后没有数,而且是正数,就输出“是正整数”。否则直接输出“不是正整数。”。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a;
float b;//用小数变量
scanf("%f",b);
a=b;//去除小数部分
if(a==b&&a>0){//没有小数的和有小数的比,并且判断是不是正数。
//说明小数部分是0,而且是正数
printf("是正整数");
}else{
printf("不是正整数");
}
return 0;
}
我是C++语言,不习惯C语言,这里面好多错误,你也可以改正一下。(这道题的思路我是正确的。)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-28
你定义了int型,int型就是整数型……你如果要输入小数就要用float型或double型
判断正负就是和0比大小……追问

意思是我定义的整型,如果我输入了浮点数就要报错,我不太会

追答

相等判断,楼下已经给出正确答案了~!

相似回答