我想创建一个程序,说如果一个数字是奇数或偶数,但如果我输入一个字母,程序必须停止。我想要做的是创建一个if语句,它允许程序了解我输入的是数字还是其他内容。 这是代码。如何确定输入值是否不是数字?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a,b;
printf("type a number ");
scanf("%d", &a);
printf("\n");
if (a<0) //This is supposed to understand if what I typed is a number, but it's not correct at all.
{
printf("ERROR, YOU MUST TYPE A NUMBER, NOT LETTERS.");
system("PAUSE \n");
return 0;
}
b=(a%2);
if (b != 0)
{
printf("it's an odd number! ");
printf("\n\n");
system("PAUSE");
return 0;
}
else
{
printf("it's an even number! ");
printf("\n\n");
system("PAUSE");
return 0;
}
}
检查'scanf()'的返回值以查看输入是否可以正确解释为数字。 – EOF
另一种可能性是使用['fgets'](https://linux.die.net/man/3/fgets)将输入作为一个字符串进行采集,然后使用[fgets]查看它是否可以成功转换为数字['strtol'](https://linux.die.net/man/3/strtol)功能家族......这是更多的工作。 – yano
所有变量都是处理器解释为数字的位集合。稍微高一些,我们说某些数字是非数字数据的代码,例如,英文字母,但仅限于上下文。 –