C语言中怎样判断输入的是整数还是浮点数

2025-05-12 11:14:36
推荐回答(5个)
回答(1):

先存成字符串,判断有没有小数点,再从字符串格式化成整型或浮点型。
#include
#include
#include
//char *strchr( const char *str, int ch );

int main(int argc, char *argv[])
{
int a = 0;
double b = 0;
char str[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");
return 0;
}

回答(2):

(1)看你的变量 成 整型 还 是 float 型 还 是 double 型.
例如:
int i;
float f;
double d;
输入 i 是 整数,输入 f 是 float 型, 输入 d 是 double 型
(2) 看输入格式
scanf("%d %f %lf",.....);
%d 输入整数; %f 输入 float 型; %lf 输入 double 型
------------------
至于 键盘上拍入的数,
scanf("%d",&i);
如果 你 拍入 123 或 -123,没问题,拍入的是整数,读进去,也是整数。
如果 你 拍入 123.4 或 -123.4,只会读进去 123 或 -123,而 .4 残余在缓冲区。
scanf("%f",&f);
如果 你 拍入 123.4 或 -123.4 , 读进去是浮点数 123.4 或 -123.4
如果 你 拍入 123 或 -123 , 读进去 自动变 浮点数。
-------------------
C语言的数的例子:
123, -123, -- 整数, 输入格式 %d
064, 040 -- 八进制整数,输入格式 %o
A0, FF -- 十六进制整数, 输入格式 %X
123.4, -123.4, 1E-02 -- 浮点数

回答(3):

先存成字符串,判断有没有小数点,再从字符串格式化成整型或浮点型。
#include
#include
#include
//char *strchr( const char *str, int ch );

int main(int argc, char *argv[])
{
int a = 0;
double b = 0;
char str[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");
return 0;
}

回答(4):

scanf(%s,str);//先存成字符串if(NULL==strchr(str,'.'))//等于NULL是没有找到小数点{sscanf(str,%d,&a);//再从字符串格式化成整型printf(输入的是整型:%d\n,a);}else{sscanf(str,%lf,&b);//再从字符串格式化成浮点型例如:inti;floatf;doubled;输入i是整数,输入f是float型,输入d是double型(2)看输入格式scanf(%d%f%lf,..);%d输入整数;%f输入float型;%lf输入double型------------------至于键盘上拍入的数,scanf(%d,&i);如果你拍入123或-123,没问题,拍入的是整数,读进去,也是整数。如果你拍入123.4或-123.4,只会读进去123或-123,而.4残余在缓冲区。scanf(%f,&f);如果你拍入123.4或-123.4,读进去是浮点数123.4或-123.4如果你拍入123或-123,读进去自动变浮点数。-------------------C语言的数的例子:123,-123,--整数,输入格式%d064,040--八进制整数,输入格式%o

回答(5):

按照定义的类型计算机自已处理,你不用管,如果你定义为int,输入3.4,它会有报错提示,定义为float, 输入3,它自动添零,已float型式存在,具体你可以参考:字符在计算机中存储形式,就可明白。