c语言如何判断一个数是整数
C语言判断是否为整数,那么只可能是判断输入的值,或者字符串中的值,是否为整数。
因为一旦存储在变量中,根据变量类型,要么为整数,要么为浮点数,是确定的。
一、判断思路:
1、整数中,按十进制计算,合法字符为0到9,另外在最初位置可以有符号,即+或者-。
2、对于输入的值,可以先存储到字符串中,这样转换为判断字符串中是否为整数。
3、先判断第一个字符是否为+或者-, 如果是,则从第二个开始判断,否则从第一个开始判断。
4、对每一个需要判断的字符,判断是否在'0'到'9'之间,如果是则合法,否则非法。
5、一旦出现非法字符,说明不是整数。如果所有字符合法,那么是整数。
二、参考代码:
intis_int(char*s)//判断s中是否为整数,如果是返回1,否则返回0.
{
char*p=s;//p指向s。
if(*p=='+'||*p=='-')//如果第一个字符为符号,则从第二个开始遍历。
p++;
while(*p)//遍历字符串。
{
if(*p<'0'||*p>'9')return0;//出现非法字符,返回0,表示不是整数。
p++;//判断下一个字符。
}
return1;//所有都是合法字符,返回1,表示为整数
}
intmain()
{
chars[200];
gets(s);//读取输入,存到s中。
if(is_int(s))//判断并输出结果
printf("%s是整数 ",s);
else
printf("%s不是整数 ",s);
return0;
}
B. c语言怎么判断一个数是不是整数
方法1:
#include<stdio.h>
#include<math.h>
float x;
...
if(fabs(x-(int)x)<1e-8)printf(“x是一个整数 ”);
else printf(“x不是一个整数 ”);
方法2:
int c=(int)b,d=(int)(b+0.999999)
if(c==d)
printf(“是整数 ”);
else
printf(“不是整数 ”);
方法3:
float b;
...
if(b-(int)b==0)
printf(“是整数 ”);
else
printf(“不是整数 ”);
方法4:
float b;
...
if(b!=(int)b)
printf(“不是整数 ”);
else
printf(“是整数 ”);
C. 在c语言中要怎么来判断整数和小数啊比如说当在输入浮点型数据的时候我要提醒它出错要怎么做
#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 ",a);
}
else
{
sscanf(str,"%lf",&b);//再从字符串格式化成浮点型
printf("输入的是浮点型:%lf ",b);
}
system("PAUSE");
return0;
}
(3)c语言如何判断一个数是整数扩展阅读
C语言判断数字为几位数
#include <stdio.h>
int main()
{
long long n;
int count = 0;
printf("输入一个整数: ");
scanf("%lld", &n);
while(n != 0)
{
// n = n/10
n /= 10;
++count;
}
printf("数字是 %d 位数。", count);
}