初始C语言——成绩等级划分

这题将百分制划分成五个等级:A,B,C,D,E

grade>=90A
80<=grade<=89B
70<=grade<=79C
60<=grade<=69D
0<=grade<=59E

每个分数段有10个数,可以得到grade/10,假设grade=97,grade/10=9可以判断grade在A级

其他分数段也是如此。

注意:如果grade是int型的话,那么上例就是grad/10=9,如果是float型则是9.7

但是无论是float还是int最终结果不影响判断分数段

就这题我有三种写法:

①用if语句判断

②用if和Switch语句

③运用三目运算符

方法一:

#define _CRT_SECURE_NO_WARNINGS 1
//防止visual studio2013以上版本scanf报错,vc6.0环境可忽略
#include<stdio.h>
int main()
{
    int grades;
    char a;//a表示等级
    printf("请输入您的成绩\n");
    printf("温馨提示:请输入0-100以内的分数\n");
    scanf("%d", &grades);
    if (grades >= 90&&grades<=100) a = 'A';
    else if (grades >= 80)    a = 'B';
    else if (grades >= 70)    a = 'C';
    else if (grades >= 60)    a = 'D';
    else     if(grades>=0)      a = 'E';
    printf("您的成绩等级为%c加油!\n", a);
}
 

方法二:

#define _CRT_SECURE_NO_WARNINGS 1
//防止visual studio2013以上版本scanf报错,vc6.0环境可忽略
#include<stdio.h>
int main()
{
    float grades;
    int g;
    printf("请输入您的分数\n");
    printf("温馨提示:分数范围在0-100内哦!\n");
    scanf("%f", &grades);
    g = grades / 10;
    switch (g) {
    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("对不起您输入的分数不在0-100内!");
    }
}

方法三:

#define _CRT_SECURE_NO_WARNINGS 1
//防止visual studio2013以上版本scanf报错,vc6.0环境可忽略
#include<stdio.h>


int main()
{
    int grade;
    char a;
    printf("请输入您的分数\n");
    printf("温馨提示:分数范围在0-100内哦!\n");
    scanf("%d", &grade);
    (grade >= 90 && grade <= 100) ? a = 'A' :
        (grade >= 80) ? a = 'B' :
        (grade >= 70) ? a = 'C' :
        (grade >= 60) ? a = 'D' :
        (grade >= 0) ? a = 'E' : 
        if (grade < 0 || grade>100)
        {
            printf("您所输入的分数超过范围\n");
    }
    printf("您的分数为%c级加油哦!\n", a);
}
三种方法各有优劣,凭自己的喜好,但代码尽量简洁规范

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值