如何用c语言编写程序实现:键盘上输入n个学生姓名、学号、语文成绩、数学成绩, 计算每个学生的总成绩并排序。

如何用c语言编写程序实现:键盘上输入n个学生姓名、学号、语文成绩、数学成绩,
计算每个学生的总成绩并排序。

定义学生结构,循环输入学生信息,用冒泡排序


#include <stdio.h>
//typedef
struct student
{
    int id;
    int score;

} t[30];
int post=0,n,max;
void r()
{
    int k;
    printf("输入学生个数:");
    scanf("%d",&n);
    printf("输入学号和分数:\n");
    for(k=0; k<n; k++)
    {
        scanf("%d%d",&t[k].id,&t[k].score);
    }
    z();
    return;
}
void sort()
{
    int j,k;
    struct student tem;
    for(k=0; k<n-1; k++)
    {
        for(j=0; j<n-k-1; j++)
        {
            if(t[j].id>t[j+1].id)
            {
                tem=t[j];
                t[j]=t[j+1];
                t[j+1]=tem;
            }
        }
    }
    for(k=0; k<n; k++)
    {
        printf("学号:%d  成绩:%d\n",t[k].id,t[k].score);
    }
    z();
    return;
}

void m()
{
    int j,k;
    max=t[0].score;
    for(k=1; k<n; k++)
    {
        if(t[k].score>max)
        {
            max=t[k].score;
            post=k;
        }
    }
    printf("最高分数:%d   学号为:%d",max,t[k].id);
    z();
    return;
}

int z()
{
    printf("1.Append record\n");
    printf("2.Sort in ascending order by number\n");
    printf("3.Caculate Max. score of course and number\n");
    printf("0.Exit\n");
    printf("Please enter your choice:\n");
    int c=0;
    scanf("%d",&c);
    switch (c)
    {
    case 1:
        r();
        break;
    case 2:
        sort();
        break;
    case 3:
        m();
        break;
    case 0:
        break;
    default:
        printf("error!");
        break;
    }

    return 0;
}
int main()
{
    z();
    return 0;
}

#include<stdio.h>
#define maxsize 100
int a[maxsize];
int main()
{
int n=0;
int sum=0;
printf("请输入学生人数n:");
scanf("%d",&n);
printf("请输入%d个学生的成绩:",n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
printf("学生平均成绩为:%d\n",sum/n);
printf("高于平均分的成绩为:");
for(i=0;i<n;i++)
{
if(a[i]>sum/n)
printf("%d ",a[i]);
}
printf("\n");
return 0;
}