编程小白C语言题目练习26

本文介绍了一种使用switch-case语句实现的成绩等级评定程序,该程序通过将学生分数除以10并取整,来简化成绩等级的判断流程,提高了代码的效率和简洁性。

题目要求

已知学生成绩(100分为满分)与等级的对应关系为:

成绩(grade 等级

90<=grade<=100 A 80<=grade<90 B 70<=grade<80 C 60<=grade<70 D grade<60 E

请你编写一个程序,要求:输入学生成绩,输出学生成绩对应的等级。(提示:使用switch….case语句)

思路分析 

如果是有if语句,那就超级好代码,但是用switch...case,也不是不行,但是要处理分数的问题,如果成绩刚好是60,70,80,90,100,正好case可以一个一个的对应,如果有同学成绩是67分,那岂不是得依次顺下来?case 70,case 69,case 68,case 67?...

这不就是有毛病呢,编程是得用脑子,仔细想想 90分和99分,成绩等级是不是都是A? 60分和69分的等级是不是都是D?

考0分的和考59分的是不是都是E?

假如小明成绩94分,这个分数除以10,int型取整,是不是9? ,case 9 是不是可以为A,在90-100分里,不关91,95,96,99,都是A,能明白意思吧?

假如小明成绩56分,这个分数除以10,int型取整,是不是5? ,case 5 是不是可以为E,在60分以下里,不关23,14,59,都是E,能明白意思吧? case 0, case 1,case 2,case 3,case 4 case 5 的结果都为E,能理解吧?

成绩除以10.就只需要case 0,到case 10,简化了代码

看看代码,真是妙不可言

代码演示 

#include<stdio.h>
int main()
{
    double score;
    printf("请输入分数:\n");
    scanf("%lf",&score);
    switch((int)(score/10))
    {    
        case 10:    
        case 9:printf("A(最好)\n");break;    
        case 8:printf("B(优秀)\n");break;    
        case 7:printf("C(良好)\n");break;    
        case 6:printf("D(及格)\n");break;    
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0:printf("E(不及格)\n");break;
        default:printf("Error!\n");
    }
}

验证结果

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值