给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为‘A’,8089分为‘B’,7079分为‘C’,60~69分为‘D’,60分以下为’E‘。
输入任何数字结果都为E
#include
int main()
{
char x;
printf("输入成绩:");
scanf("%c",&x);
if(x>=90)
x='A';
else if(x>=80)
x='B';
else if(x>=70)
x='C';
else if(x>=60)
x='D';
else
x='E';
printf("x=%c\n",x);
return 0;
}
为什么这样写不对?
scanf使用%d表示输入数字,printf使用%c表示输出字符
char x改为int x
scanf("%d",&x);
%c只能接收一个字符,你输入90分,实际接收的是字符'9',而字符'9'的ASCII码才57,所以判为不及格了