在c语言中要怎么来判断整数和小数啊?比如说当在输入浮点型数据的时候我要提醒它出错要怎么做?

2025-03-10 04:29:36
推荐回答(5个)
回答1:

#include

#include

#include

//char*strchr(constchar*str,intch);

intmain(intargc,char*argv[])

{

inta=0;

doubleb=0;

charstr[10]="";

scanf("%s",str);//先存成字符串

if(NULL==strchr(str,'.'))//等于NULL是没有找到小数点

{

sscanf(str,"%d",&a);//再从字符串格式化成整型

printf("输入的是整型:%d\n",a);

}

else

{

sscanf(str,"%lf",&b);//再从字符串格式化成浮点型

printf("输入的是浮点型:%lf\n",b);

}

system("PAUSE");

return0;

}

扩展资料

C语言判断数字为几位数

#include

int main()

{

long long n;

int count = 0;

printf("输入一个整数: ");

scanf("%lld", &n);

while(n != 0)

{

// n = n/10

n /= 10;

++count;

}

printf("数字是 %d 位数。", count);

}

回答2:

有一个非常巧妙的方法,就是将用户输入的数强转为整型,然后和数本身做比较,如果不相等说明输入的是小数!例子程序如下:
#include
void main()
{
float a;
scanf("%f", &a);
if (a != (int)a)
printf("你输入的不是整数!!\n");
}

回答3:

C语言里?用户输入?直接在接受的字符串里查找小数点" . "

已经得到数据后,可以将float f强制赋值给一个int型变量i,然后比较i和f是否相等。这时候i只有f的整数部分。不相等,证明f含有小数部分。

回答4:

把你要输入的数定义为double num
然后判断(num - (int)num) 是否等于0
等于0num就是整数了

回答5:

#include
using namespace std;
...

typeid(d).name() 判断d的类型!