#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);
}
有一个非常巧妙的方法,就是将用户输入的数强转为整型,然后和数本身做比较,如果不相等说明输入的是小数!例子程序如下:
#include
void main()
{
float a;
scanf("%f", &a);
if (a != (int)a)
printf("你输入的不是整数!!\n");
}
C语言里?用户输入?直接在接受的字符串里查找小数点" . "
已经得到数据后,可以将float f强制赋值给一个int型变量i,然后比较i和f是否相等。这时候i只有f的整数部分。不相等,证明f含有小数部分。
把你要输入的数定义为double num
然后判断(num - (int)num) 是否等于0
等于0num就是整数了
#include
using namespace std;
...
typeid(d).name() 判断d的类型!