给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为’E‘。

问题遇到的现象和发生背景

给出一百分制成绩,要求输出成绩等级‘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,所以判为不及格了