从键盘输入一个班(全班最多不超过30人)学生的学号和三门课的成绩,当输入的学号为负值或人数超过30时,输入结束。编程计算每个学生的总分和平均分;计算每门课的总分和平均分,并打印学生成绩表(按照总分由高到低的顺序)。成绩表包括名次、学号、各门课的成绩、总分及平均分。打印序号、每门课的总分和平均分。要求:
输入的学生学号及各门课的分数请在Input()函数实现;计算每个学生的总分和平均分请在Total1()函数实现;计算每门课的总分和平均分请在Total2()函数实现;对每个学生按照总分由高到低排序请在Total3()函数实现;打印学生成绩表及每门课的总分和平均分请在Print()函数实现。
Input函数原型如下: int Input(long num[], int score[][3]);
参数说明:数组 num 存放学生的学号,数组 score 存放学生的分数
返回值:返回班级的实际人数
5. Total1函数原型如下 void Total1(int score[][3], float sum[],float aver[],int n);
参数说明:数组 score存放学生的分数,数组 sum存放每个学生的总分,数组aver存放每个学生的平均分,n班级实际人数返回值:无
6. Total2函数原型如下: void Total2(int score[][3],float sum[],float aver[],int n);
参数说明:数组 score存放学生的分数,数组 sum存放每门课的总分,数组aver存放每门课的平均分,n班级实际人数 返回值:无
5.Total3函数原型如下: void Total3(long num[],int score[][3],float sum[],float aver[],int n);
参数说明:数组 num 存放学生的学号,数组 score存放学生的分数,数组 sum存放每个学生的总分,数组aver存放每个学生的平均分,n班级实际人数返回值:无
6.Print函数原型如下: void Print(long num[],int score[][3],float sum1[],float aver1[],float sum2[],float aver2[],int n);
输入要求: 按行输入,数据之间用空格分隔,详见输入样例
输出要求:"Pos\tNumber\tGrad1\tGrad2\tGrad3\tSum1\tAver1\n",
"No\tSum2\tAver2\n",详见输出样例
Input sample1:
19001 90 89 78
19002 76 90 98
19003 88 77 66
19004 56 65 44
19005 98 90 97
-1 8 9 0
Output sample1:
Pos Number Grad1 Grad2 Grad3 Sum1 Aver1
1 19005 98 90 97 285 95
2 19002 76 90 98 264 88
3 19001 90 89 78 257 86
4 19003 88 77 66 231 77
5 19004 56 65 44 165 55
No Sum2 Aver2
1 408 82
2 411 82
3 383 77