8.5,请参考课本例8.7程序中的函数ReadScore()和FindMax(), 从健盘输入某班学生某门课的成绩和学号(最多不超过40人),当输入为负值时,表示输入结束,用函数编程通过返回数组中最大元素的下标,查找并输出成绩的最高分及其对应的学生学号。
输入
学号和成绩,直到有负数的出现
输出
有效人数,最高分人的分数和学号
样例
标准输入 复制文本 |
1001 98 1002 99 1003 92 1001 -1 |
标准输出 复制文本 |
Total students are 3 The highest is 1002, score is 99 |
标准输入 复制文本 |
202001 56 202002 98 -1 100 |
标准输出 复制文本 |
Total students are 2 The highest is 202002, score is 98 |
标准输入 复制文本 |
2020023861 500 2020023877 20 -1 -1 |
标准输出 复制文本 |
Total students are 2 The highest is 2020023861, score is 500 |
提示
main()给出,此题重点在于两个函数的实现。
int ReadScore(int score[], long num[]);
int FindMax(int score[], int n);
int main(void)
{
int score[N], maxNum, n;
long num[N];
n = ReadScore(score, num); /* 输入成绩,返回学生人数 */
printf("Total students are %d\n", n);
maxNum = FindMax(score, n); /* 计算并返回最高分所在数组的下标 */
printf("The highest is %ld, score is %d\n", num[maxNum], score[maxNum]);
return 0;
}