定义了一个int类型,但是输入不为一个int类型时,为什么会输出E?
#include<stdio.h>int main()
{
int i;
printf("请输入分数:");
scanf("%d", &i);
if (i >= 90 && i <= 100)
{
printf("A\n");
}
else if (i >= 80 && i < 90)
{
printf("B\n");
}
else if (i >= 70 && i < 80)
{
printf("C\n");
}
else if (i >= 60 && i < 70)
{
printf("D\n");
}
else if (i >= 0 && i < 60)
{
printf("E\n");
}
else
{
printf("输入错误\n");
}
return 0;
} 就这个代码:
#include<stdio.h>
int main()
{
int i ;
printf("请输入分数:") ;
scanf("%d" , & i) ;
if (i >= 90 && i <= 100) printf("A\n") ;
else if (i >= 80 && i < 90) printf("B\n") ;
else if (i >= 70 && i < 80) printf("C\n") ;
else if (i >= 60 && i < 70) printf("D\n") ;
else if (i >= 0 && i < 60) printf("E\n");
else printf("输入错误\n") ;
}
在我这里一切都很正常啊:
C:\Bin>g++ -o x x.c
C:\Bin>x
请输入分数:99.5
A
C:\Bin>x
请输入分数:15.5
E
C:\Bin>x
请输入分数:89.9
B
C:\Bin> 比如?你输什么会输出E???? ba21 发表于 2019-10-20 18:48
比如?你输什么会输出E????
输入一个字符,如a,会输出E,输入不是数字的时候,都会是E 本帖最后由 jackz007 于 2019-10-20 20:47 编辑
巴晶呀 发表于 2019-10-20 20:15
输入一个字符,如a,会输出E,输入不是数字的时候,都会是E
典型的垃圾进,垃圾出,如果要防止这种情况发生,要添加错误检测代码。
if(scanf("%d", &i) == 1) {
i 是正常的
} else {
i 是不正常的
}
应该在 i 是正常的情况下完成 A、B、C、D、E 的判定。
页:
[1]