【发布时间】:2017-03-02 20:05:33
【问题描述】:
我想创建一个程序来判断一个数字是奇数还是偶数,但如果我输入一个字母,程序必须停止。我想做的是创建一个 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()的返回值,看看输入是否可以正确解释为数字。 -
所有变量都是位的集合,处理器将其解释为数字。在稍高的层次上,我们说某些数字是非数字数据的代码,例如英文字母,但仅限于上下文中。
-
如果您要实际检查调用
scanf()的返回值,它会告诉代码输入是否为数字。如果输入不是数字,则scanf()将返回 0。如果输入是数字,则scanf()将返回 1。该返回值指示成功输入转换的次数。 (注意scanf()也可以在发生某些问题或用户键入(取决于操作系统)或 时返回 EOF
标签: c if-statement integer