hdoj刷题之旅——2003

2003-成绩转换

  • Problem Description

输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;

  • Input

输入数据有多组,每组占一行,由一个整数组成。

  • Output

对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。

  • Sample Input

56

67

100

123

  • Sample Output

E

D

A

Score is error!

这道题开始每个人的风格就开始体现出来了。看到这个一看就是上课老师用来将SWITCH的例题了。当然了有些铁头娃还是会有if else来写那也是没办法的辣,不过幸好分的情况还是比较少的。我贴两个代码,一个是我的一个是别人的。

#include<stdio.h>
int main(void)
{
    int a,b;
    while(scanf("%d",&a)!=EOF)
    {
        if(a<0||a>100)
        printf("Score is error!\n");
        else
        {
            b=a/10;
            switch(b)
            {
                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;
                default:printf("E\n");break;
            }
        }
    }
    return 0;
}
#include <stdio.h>
void main()
{
    int t;
    int grade;
    while(EOF != scanf("%d",&t))
    {
        if(t < 0 || t> 100)
        {
            printf("Score is error!\n");
        }
        else
        {
            grade = t/10;
            switch (grade)
            {
                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;
                default:
                    printf("E\n");
                    break;
            }
        }
    }
    //system("pause");
}

在最主干的部分其实这两个代码并没有区别。但是风格一目了然。看过几个我代码的,一看上面那个就是我的了。我的主张就是不会让代码显得特别瘦。因为给人感觉很不好。适当的长度,一行之内留有足够的信息量,不要老是让人上下捕捉。

在这个代码里面我们首先要确定的是成绩对应的是什么,是十位数上的数,除了一百。然后我们知道计算机的整数除法是什么样的规则,这道题的第一个难点就过去了。然后是第二个。从哪里开始算,从0到10还是10到0;看等地分布,我们知道了0到5是E那我们自然把这类分到default,那我们就从10到0来输出。然后记住break就行了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值