一个关于C语言的问题

对某班所有学生的高数成绩按成绩由高到底进行排序,统计其平均成绩、每个分数段的学生人数(>90分,80-89分,70-79分,60-69分,<60分),并根据分数段输出每个学生成绩所在等级(>90分:优秀,80-89分:良好,70-79分:中等,60-69分:及格,<60分:不及格)

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include <stdio.h>

void sort(int array[],int n)
{
    int i,j,k,t;
    for(i = 0;i < n-1;i ++)
    {
        k = i;
        for(j = i + 1;j < n;j ++)
        {
            if(array[k] < array[j])
            {
                k = j;
            }
        }
        t = array[k];
        array[k] = array[i];
        array[i] = t;
    }
}

void main()
{
    int n,i;
    printf("输入成绩的个数n:");
    scanf("%d", &n);
    int a[n];
    float sum = 0.0;
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
        sum += a[i];
    }
    printf("平均成绩:%.2f", sum/n);
    sort(a,n);
    int sa = 0,sb = 0,sc = 0,sd = 0,se = 0;
    for(i=0;i<n;i++){
        printf("\n%d ",a[i]);
        if (a[i]>=90) {
            printf("优秀");
            sa++;
        } else if (a[i]>=80) {
            printf("良好");
            sb++;
        } else if (a[i]>=70) {
            printf("中等");
            sc++;
        } else if (a[i]>=60) {
            printf("及格");
            sd++;
        } else{
            printf("不及格");
            se++;
        }
    }
    printf("\n优秀人数:%d, 良好人数:%d, 中等人数:%d, 及格人数:%d, 不及格人数:%d",sa,sb,sc,sd,se);
    
}

img


/* Note:Your choice is C IDE */
#include "stdio.h"

//输入
void input(int a[10]){
    int i;
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
}
//冒泡排序
void choose(int a[10]){
    int i,j,temp;
    for(i=1;i<10;i++)
    {
        for(j=9;j>=i;j--)
        {
            if(a[j]>a[j-1]){
                temp=a[j];
                a[j]=a[j-1];
                a[j-1]=temp;
            }
        }    
    }    
}
//输出
/*统计其平均成绩、每个分数段的学生人数(>90分,80-89分,70-79分,60-69分,<60分),并根据分数段输出每个学生成绩所在等级(>90分:优秀,80-89分:良好,70-79分:中等,60-69分:及格,<60分:不及格)
*/
void output(int a[10]){
    int i;
    float sum = 0;
    for(i=0;i<10;i++) {
        sum += a[i];
        if(a[i]>90)
          printf("优秀\n");
        else if(a[i]>=80 && a[i]<=89)
          printf("良好\n");
        else if(a[i]>=70 && a[i]<=79)
          printf("中等\n");
        else if(a[i]>=60 && a[i]<=69)
          printf("及格\n");
        else
          printf("不及格\n");
    }    
    printf("\n平均分:%0.2f",sum/10);
}
void main()
{
    
    int a[10];
    //输入
    input(a);
    //冒泡排序
    choose(a);
    //输出
    output(a);
}

代码如下:

#include <stdio.h>
//排序
void sort(int a[],int n)
{
    int i,j,t;
    for (i=0;i<n-1;i++)
    {
        for (j=0;j<n-i-1;j++)
        {
            if(a[j] < a[j+1])
            {
                t = a[j];
                a[j] = a[j+1];
                a[j+1] =t;
            }
        }
    }
}
//平均成绩
float avg(int a[],int n)
{
    int i;
    float s = 0;
    for (i=0;i<n;i++)
    {
        s += a[i];
    }
    return s/n;
}

//统计
void Tongji(int a[],int n)
{
    int i;
    int A=0,B=0,C=0,D=0,E=0;
    for (i=0;i<n;i++)
    {
        switch(a[i]/10)
        {
        case 10:
        case 9:
            A++;
            printf("优秀\n");
            break;
        case 8:
            B++;
            printf("良好\n");
            break;;
        case 7:
            C++;
            printf("中等\n");
            break;
        case 6:
            D++;
            printf("及格\n");
        default:
            E++;
            printf("不及格\n");
            break;
        }
    }

    printf(">90分人数:%d\n",A);
    printf(">80-89分人数:%d\n",B);
    printf(">70-79分人数:%d\n",C);
    printf(">60-69分人数:%d\n",D);
    printf("<60分人数:%d\n",E);

}


int main()
{
    int n,a[100],i;
    
    printf("请输入人数:");
    scanf("%d",&n);
    printf("请输入%d个学生的成绩:\n");
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);

    //排序
    sort(a,n);
    printf("排序后:\n");
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
    printf("\n");

    printf("平均分:%.2f\n",avg(a,n));

    Tongji(a,n);
    return 0;
}