问题 F: 成绩统计

题目描述
把百分制的考试成绩转换为五个等级:
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]);
            }
        }
    }
}
发布了99 篇原创文章 · 获赞 63 · 访问量 6226

猜你喜欢

转载自blog.csdn.net/m0_43456002/article/details/102962903