c语言编程中如何判断一个数是否为整数

如题所述

C语言判断是否为整数,那么只可能是判断输入的值,或者字符串中的值,是否为整数。

因为一旦存储在变量中,根据变量类型,要么为整数,要么为浮点数,是确定的。 

一、判断思路:

1、整数中,按十进制计算,合法字符为0到9,另外在最初位置可以有符号,即+或者-。

2、对于输入的值,可以先存储到字符串中,这样转换为判断字符串中是否为整数。

3、先判断第一个字符是否为+或者-, 如果是,则从第二个开始判断,否则从第一个开始判断。

4、对每一个需要判断的字符,判断是否在'0'到'9'之间,如果是则合法,否则非法。

5、一旦出现非法字符,说明不是整数。如果所有字符合法,那么是整数。

二、参考代码:

int is_int(char *s)//判断s中是否为整数,如果是返回1,否则返回0.
{
    char* p =s;//p指向s。
    if(*p=='+'||*p=='-')//如果第一个字符为符号,则从第二个开始遍历。
        p++;
    while(*p)//遍历字符串。
    {
        if(*p<'0'||*p>'9') return 0;//出现非法字符,返回0,表示不是整数。 
        p++;//判断下一个字符。
    }
    return 1;//所有都是合法字符,返回1,表示为整数
}
int main()
{
    char s[200];
    gets(s);//读取输入,存到s中。
    if(is_int(s))//判断并输出结果
        printf("%s æ˜¯æ•´æ•°\n", s);
    else 
        printf("%s ä¸æ˜¯æ•´æ•°\n",s);
    return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-12
这个提法不正确,“一个数”是什么概念?如果一块内存中的数据可以解释成一个数,那这个数可以是整数,也可以是浮点数。如果你要判断用户输入的数是整数还是浮点数,你只能用浮点数来存储,然后判断是否和自己强转的整数形式相等。
第2个回答  推荐于2018-05-29
int ret;
ret=scanf("%d,%d",&x,&y); //记录scanf函数的
if(ret!=2) //根据scanf函数的返回值,判断输出数据个数或者格式是否错误
{
printf("你输入的数是非整数\n");
while(getchar()!='\n'); //清除输入缓冲区中的错误数据
}本回答被网友采纳
第3个回答  推荐于2017-10-11
double x;
scanf("%f",&x);
if((int)x==x)
printf("%f是整数",x);本回答被提问者采纳
第4个回答  2011-09-11
比如double x=2.75;
int y=(int)x;

if(x==y)就是正数

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网