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

解题基础:

scanf("输入模式",地址列表);//输入语句及其格式。注:地址列表一定要加取地址符号&,如:&a,&b

switch(表达式){

case 常量值1:

若干语句1

break;//可省略

case 常量值2:

若干语句2

break;//可省略

......

case 常量值n:

若干语句n

break;//可省略

default://可省略

若干语句

}//开关语句及其格式,若表达式的值等于某个常量值,则进行某常量值相对应的语句,若没遇到break,则接着运行下一个常量值后面的语句,直到遇到break为止,若表达式的值不等于某个常量值,则执行default后面的若干语句,default可省略(不执行语句)

思路:因为定义a的是一个整型变量int,所以a/10的值也是一个int型变量(整数)(注:C语言的取整不是四舍五入,是直接舍去小数),所以当90<a<100时,a/10=9,当80<a<90时,a/10=8,当70<a<80时,a/10=9,当60<a<70时,a/10=6,所以可以直接用switch函数(当然if也行,不过比较麻烦)

答案

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

#include<stdio.h>

int main(){

int a;

scanf("%d",&a);

switch(a/10){

case 10:

case 9:

putchar('A');

break;

case 8:

putchar('B');

break;

case 7:

putchar('C');

break;

case 6:

putchar('D');

break;

default:

putchar('E');

}

}

ps:当a/10=10时,因为常量值后面的若干语句中没有break,则接着运行下一个常量值(case 9)后面的若干语句,直到遇到break为止

程序结束return 0;不可省。

#define _CRT_SECURE_NO_WARNINGS 1

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

#include<stdio.h>

int main() {

int a;

scanf("%d", &a);

switch (a / 10)

{

case 10:

case 9:

putchar('A');

break;

case 8:

putchar('B');

break;

case 7:

putchar('C');

break;

case 6:

putchar('D');

break;

default:

putchar('E');

}

}

### 回答1: 好的,我来用中文回复。本任务要求根据一百分制成绩输出对应的成绩等级a、b、c、d、e。具体规则是:90以上为a,80-89分为b,70-79分为c,60-69分为d,60以下为e。如果输入的成绩不在~100的范围内,需要输出一行“score is error!”。 ### 回答2: 本题要求根据给出成绩,将其转换为对应的成绩等级。首先,需要判断成绩是否在0~100范围内,如果超出范围,则输出“score is error!”。如果成绩在范围内,则需要按照给定的标准进行转换。 判断成绩是否合法可以通过if语句进行判断,即if score<0 or score>100,则输出“score is error!”。如果成绩在范围内,则可以使用if语句进行数段的判断,根据数段输出对应的成绩等级: if score>=90: print("等级为a") elif score>=80 and score<=89: print("等级为b") elif score>=70 and score<=79: print("等级为c") elif score>=60 and score<=69: print("等级为d") else: print("等级为e") 以上代码中,使用了if和elif语句来判断成绩所处的数段,并输出对应的成绩等级。其中,elif语句表示else if的缩写,是if语句的补充,用于判断多个条件。 最后,需要注意的是,输出结果需要使用中文,因此要将英文等级转换为中文等级。另外,为了让输出更加清晰,可以在每个数段的输出语句中添加数范围,例如: if score>=90: print("成绩等级为:优秀(90~100)") elif score>=80 and score<=89: print("成绩等级为:良好(80~89)") elif score>=70 and score<=79: print("成绩等级为:中等(70~79)") elif score>=60 and score<=69: print("成绩等级为:及格(60~69)") else: print("成绩等级为:不及格(60以下)") 以上代码中,将输出改为了中文等级,并添加了数范围。这样,不仅可以清晰地表达成绩等级,也可以使输出更加直观。 ### 回答3: 本题可以使用if-elif-else语句结合逻辑判断来实现。 首先,我们需要获取输入的成绩值,可以使用input()函数: score = input("请输入成绩(0-100):") 然后,我们需要将输入的字符串类型的成绩值转换为整型(int): score = int(score) 接下来,我们使用if-elif-else语句根据成绩的范围来判断等级输出: if score >= 90: print("成绩等级为:a") elif score >= 80 and score <= 89: print("成绩等级为:b") elif score >= 70 and score <= 79: print("成绩等级为:c") elif score >= 60 and score <= 69: print("成绩等级为:d") elif score < 60 and score >= 0: print("成绩等级为:e") else: print("score is error!") 在以上代码中,我们通过与逻辑运算符“and”和“or”结合使用,实现了判断范围的逻辑语句。同时,我们使用了最后的else语句,对不在0~100范围内的输入进行了错误提示。 现在,我们就可以测试一下这个程序了。假设我们输入了60这个成绩,程序应该输出成绩等级为:d 如果我们输入了-1或者101这样超出0~100范围的成绩,程序就会输出: score is error!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值