1.某班期末考试科目为物理(PH)、数学(MT)、英语(EN),最多不超过30人参加考试,分别实现下列功能(要求用多个函数实现):
(1)函数Total_1:输入n个学生的学号num,计算每个学生的总分sum和平均分ave,并按照:(学号 总分 平均分)的格式分行打印;
(2)函数Sort:按照总分成绩由高到低排出成绩的名次,并按照:(学号 总分)的格式分行打印;
(3)函数Total_2:分别统计各学科的平均分,并按照:(科目 平均分)的格式分行打印;

#include <stdio.h>
#define size 30 //最多学生人数
void Total_1(int score[size][3],int sum[size],float ave[size],int n,int num[]);
int Sort(long num[],int n,int sum[]);
void Total_2(int score[size][3], int sum[3], float ave[3], int n);
int main(void)
{
int n,score[size][3], sum[size];//成绩数组,总分数组
long num[size]; //学号数组
float ave;//平均分数组
n = Total_1(num,sum,ave,score,n);
Sort(num,sum,n);
Total_2(ave,n,sum,score);
return 0;
}
void Total_1(int score[size][3],int sum[size],float ave[size],int n,int num[])
{
int i,j;
printf("请输入学生人数(n<=30): ");
scanf("%d", &n);//输入参加考试的学生人数
printf("请输入学号和三门课成绩\n");
for (i=0; i<n; i++)
{
scanf("%ld",&num[i]); //以长整型格式输入每个学生的学号
sum[i]=0;
for(j=0; j<3; j++)
{
scanf("%d", &score[i][j]);//输入每个学生的各门课成绩
sum[i]=score[i][j]+sum[i];
}
ave[i]=(float)sum[i]/3;
}
printf("%d\t %d\t %d",num,sum,ave);
return 0;
}
int Sort(long num[],int n,int sum[])
{
int i,j;
for (i=1;i<4;i++)
{
for(j=1;j<n;j++)
{
sum[]
}
}
}
void Total_2(int score[size][3], int sum[3], float ave[3], int n)
{
int i,j;
for(i=1;i<3;i++)
{
printf("科目 平均分");
for(j=0;j<4;j++)
{
printf("PH\n MT\n EN\n");
}
}
}