C 期末考试之分等级 SDUT


Description

期末考试结束了,老师想要根据学生们的成绩划分出等级。共有5个等级A,B,C,D和E。
划分方法如下,90分(含90)以上的为A,8090(含80)间的为B,7080(含70)间的为C,
60~70(含60)的为D,不及格的为E。
根据输入的成绩,编程输出各个级别段人数。


Input

输入第一行包含一个正整数N(N<= 100)代表学生的数目,接下来有N行数据每行一个整数(0~100)代表
一个学生的成绩。


Output

输出有五行格式如下:

A nA
B nB
C nC
D nD
E nE

其中A,B,C,D,E代表等级,nA,nB等代表个等级的人数,等级和人数之间有一个空格。


Sample
Input

6
66
73
85
99
100
59


Output

A 2
B 1
C 1
D 1
E 1


方法一:这是最容易想到的用分数大于一个数小于一个数来限制范围

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,i,x;
    int count1=0,count2=0;
    int count3=0,count4=0,count5=0;
    scanf("%d",&n);
    for(i=1; i<=n; i++)
    {
        scanf("%d",&x);
        if(x>=90)
            count1++;
        if(x>=80&&x<90)
            count2++;
        if(x>=70&&x<80)
            count3++;
        if(x>=60&&x<70)
            count4++;
        if(x<60)
            count5++;

        }
    printf("A %d\nB %d\nC %d\nD %d\nE %d",count1,count2,count3,count4,count5);
    return 0;
}

方法二:用到多分支结构;

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,x,i;
    int a=0,b=0,c=0,d=0,e=0;
    scanf("%d",&n);
    for(i=1; i<=n; i++)
    {
        scanf("%d",&x);
        x=x/10; //去掉一位,这边不用上面的范围来限制了;
        switch(x) //用多分支结构不要忘了break;
        {
        case 10:
        case 9:
            a++;
            break;
        case 8:
            b++;
            break;
        case 7:
            c++;
            break;
        case 6:
            d++;
            break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0:
            e++;
            break;
        }
    }
    printf("A %d\nB %d\nC %d\nD %d\nE %d",a,b,c,d,e);
    return 0;
}
发布了136 篇原创文章 · 获赞 95 · 访问量 2317

猜你喜欢

转载自blog.csdn.net/zhangzhaolin12/article/details/103964499