C语言输入一个数判断他是不是整数,如果是,判断他是奇数还是偶数,如果是偶数,那么他的一半是不是偶数程序如下,可是我发现如果输入的数是字母或者符号,程序仍然认为是整数,求怎么改?#inc
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 22:41:55
C语言输入一个数判断他是不是整数,如果是,判断他是奇数还是偶数,如果是偶数,那么他的一半是不是偶数程序如下,可是我发现如果输入的数是字母或者符号,程序仍然认为是整数,求怎么改?#inc
C语言输入一个数判断他是不是整数,如果是,判断他是奇数还是偶数,如果是偶数,那么他的一半是不是偶数
程序如下,可是我发现如果输入的数是字母或者符号,程序仍然认为是整数,求怎么改?
#include
int main(void)
{
\x09long double number=0L;
\x09printf("Please input one number:\n");
\x09scanf("%lf",&number);
\x09if((int)number==number)
\x09{
\x09\x09int a=(long)number;
\x09if (a%2L==0L)
\x09{\x09printf("the number you input is even!\n");
\x09if ((a/2L)%2L==0L)
\x09\x09printf("half of the number is even,too!\n");
\x09else printf("half of the number is not even!\n");
\x09}
\x09else printf("the number is odd!\n");
\x09}
\x09else printf("the number is not an integer!\n");
\x09return 0;
}
C语言输入一个数判断他是不是整数,如果是,判断他是奇数还是偶数,如果是偶数,那么他的一半是不是偶数程序如下,可是我发现如果输入的数是字母或者符号,程序仍然认为是整数,求怎么改?#inc
不知道楼主的编译器是不是和我的一样,不支持long double类型,我的改成这样就可以了:
#include <stdio.h>
int main(void)
{
\x05double number;//定义成double类型,并且不能初始化为0L
\x05printf("Please input one number:\n");
\x05scanf("%lf",&number);
\x05if((int)number==number)
\x05{
\x05\x05int a=(long)number;
\x05if (a%2L==0L)
\x05{\x05printf("the number you input is even!\n");
\x05if ((a/2L)%2L==0L)
\x05\x05printf("half of the number is even, too!\n");
\x05else printf("half of the number is not even!\n");
\x05}
\x05else printf("the number is odd!\n");
\x05}
\x05else printf("the number is not an integer!\n");
\x05return 0;
}