【发布时间】:2021-09-09 11:10:35
【问题描述】:
使用 switch 语句,编写一个将数字等级转换为字母的程序
等级:
输入数字等级:84
字母等级:B
使用以下评分标准:
A = 90-100,B = 80-89,C = 70-79,D = 60-69,F = 0-59。
如果成绩大于100 或小于0,则打印错误消息。
提示:将成绩分成两位数,然后使用 switch 语句测试十位数。
如何更改代码以让100 变为A?我输入100,输出为F。
#include <stdio.h>
int main(void)
{
int front_number, back_number;
printf("Enter numerical grade: ");
scanf("%1d%1d", &front_number, &back_number);
printf("Letter grade: ");
switch (front_number){
case 0: case 1: case 2: case 3: case 4: case 5:
printf("F");
break;
case 6:
printf("D");
break;
case 7:
printf("C");
break;
case 8:
printf("B");
break;
case 9:
printf("A");
break;
}
return 0;
}
【问题讨论】:
-
@kaylum 作业(我认为这是家庭作业)说应该使用
switch。 -
我知道怎么做 in (if else statement) ,但问题要我使用 switch
-
00是有效输入吗?如果不是,那么如果第一个数字是 0,您可以将其解释为 100。 -
当有效输入为“100”(即三位数)时,将数字分成两位数是错误的。只需将带有
%d的输入扫描成一个数字,例如grade,然后使用switch (grade/10)并包含case 10:。区分 100 和 101 以报告错误将需要if语句或一些恶作剧(可能只是第二个switch)。我建议找一位新老师。 -
我很惊讶没有人提到
default。
标签: c switch-statement