欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

问题 F: 成绩统计

程序员文章站 2024-03-18 21:20:16
...

题目描述
把百分制的考试成绩转换为五个等级:
90~100:Excellent
80~89:Good
70~79:Average
60~69:Pass
0~59:Failing
统计每个等级的成绩,并输出。

输入

输入多行,每行一个整数。输入的成绩总数不超过1000个。到EOF结束。

输出
按从好到差的顺序分等级输出成绩,第一行为“等级 : 成绩数”,成绩数为这一等级的成绩总数;第二行为具体的成绩,用逗号分隔开,每个逗号后面有空格,每行最后一个成绩后没有逗号和空格。最后一行后有回车。输出的成绩与输入的顺序相同。若某个等级没有成绩,则不输出第二行。
具体格式参照sample。

样例输入

-1
81
92
35
68
72
100
1000
95
60
59
72

样例输出

Excellent : 3
92, 100, 95
Good : 1
81
Average : 2
72, 72
Pass : 2
68, 60
Failing : 2
35, 59

代码如下:

#include<stdio.h>
int judge(int n)
{
    int g;
    if(n>=0&&n<=100)
    {
        n = n / 10;
        switch(n)
        {
            case 10:
            case 9:
                g = 0;
                break;
            case 8:
                g = 1;
                break;
            case 7:
                g = 2;
                break;
            case 6:
                g = 3;
                break;
            default:
                g = 4;
                break;
        }
    }
    else
    {
        g = 5;
    }
    return g;
}
int main()
{
    int grade;
    int e[1000] = {0};
    int g[1000] = {0};
    int a[1000] = {0} ;
    int p[1000] = {0};
    int f[1000] = {0};
    int b[6] = {0};
    while(scanf("%d",&grade)!=EOF)
    {
        int j = judge(grade);
        if(j==0)
        {
            e[b[j]] = grade;
        }
        else if(j==1)
        {
            g[b[j]] = grade;
        }
        else if(j==2)
        {
            a[b[j]] = grade;
        }
        else if(j==3)
        {
            p[b[j]] = grade;
        }
        else if(j==4)
        {
            f[b[j]] = grade;
        }
        b[j]++;
    }
    printf("Excellent : %d\n",b[0]);
    if(b[0]!=0)
    {
        for(int i=0;i<b[0];i++)
        {
            if(i==0)
            {
                printf("%d",e[i]);
            }
            else
            {
                printf(", %d",e[i]);
            }
        }
        printf("\n");   
    }
    printf("Good : %d\n",b[1]);
    if(b[1]!=0)
    {
        for(int i=0;i<b[1];i++)
        {
            if(i==0)
            {
                printf("%d",g[i]);
            }
            else
            {
                printf(", %d",g[i]);
            }
        }
        printf("\n");
    }
    printf("Average : %d\n",b[2]);
    if(b[2]!=0)
    {
        for(int i=0;i<b[2];i++)
        {
            if(i==0)
            {
                printf("%d",a[i]);
            }
            else
            {
                printf(", %d",a[i]);
            }
        }
        printf("\n");
    }
    printf("Pass : %d\n",b[3]);
    if(b[3]!=0)
    {
        for(int i=0;i<b[3];i++)
        {
            if(i==0)
            {
                printf("%d",p[i]);
            }
            else
            {
                printf(", %d",p[i]);
            }
        }
        printf("\n");
    }
    printf("Failing : %d\n",b[4]);
    if(b[4]!=0)
    {
        for(int i=0;i<b[4];i++)
        {
            if(i==0)
            {
                printf("%d",f[i]);
            }
            else
            {
                printf(", %d",f[i]);
            }
        }
    }
}