2
寻找最高分成绩的学生(4分)
题目内容:
下面程序的功能是用动态数组编程输入任意m个班学生(每班n个学生)的某门课的成绩,计算最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。其中,m和n的值由用户从键盘任意输入(不限定m和n的上限值)。程序的运行结果如下所示:
Input array size m,n:
3,4↙
Input 3*4 array:
80 82 63 74↙
60 81 75 68↙
87 91 78 92↙
maxScore = 92, class = 3, number = 4
按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。
1. #include 2. #include 3. void InputScore(int *p, int m, int n); 4. int FindMax(int *p, int m, int n, int *pRow, int *pCol); 5. int main() 6. { 7. int *pScore, m, n, maxScore, row, col; 8. printf(\); 9. scanf(\, &m, &n); 10. ___________________; /* 申请动态内存 */ 11. 12. if (pScore == NULL) 13. { 14. printf(\); 15. exit(0); 16. } 17. InputScore(pScore, m, n); 18. maxScore = FindMax(________________); 19. 20. printf(\, maxScore, row+1, col+1); 21. free(pScore); /* 释放动态内存 */
22. return 0; 23. } 24. 25. /* 函数功能:输入m行n列二维数组的值 */ 26. void InputScore(_______, int m, int n) 27. { 28. int i, j; 29. printf(\, m, n); 30. for (i=0; i输入格式:
输入数组大小格式:\
输入数组元素格式:\
输出格式:
输入数组大小的提示信息:\
输入数组元素的提示信息:\
输出数据格式:\
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
时间限制:500ms内存限制:32000kb C #include #include void InputScore(int *p, int m, int n); int FindMax(int *p, int m, int n, int *pRow, int *pCol); int main() { int *pScore, m, n, maxScore, row, col; printf(\ scanf(\ pScore=(int*)malloc(m*n*sizeof(int)); /* 申请动态内存 */ if (pScore == NULL) { printf(\ exit(0); } InputScore(pScore, m, n); maxScore = FindMax(pScore,m,n,&row,&col); printf(\ free(pScore); /* 释放动态内存 */ return 0; } /* 函数功能:输入m行n列二维数组的值 */ void InputScore(int* p, int m, int n) { int i, j; printf(\ for (i=0; imax) { max = p[i*n+j]; *pRow = i; /*记录行下标*/ *pCol = j; /*记录列下标*/ } } } return max; } 用例测试结运行果 时间 用例1通过 2ms 占用内存 256kb 提示 得分 2 2 用例2通过 26ms 256kb 提交答案 本次得分/总分:4.00/4.00分 3 程序改错(4分) 题目内容: 下面程序的功能是输入m个学生(最多为30人)n门课程(最多为5门)的成绩,然后计算并打印每个学生各门课的总分和平均分。其中,m和n的值由用户从键盘输入。希望的运行结果为:
程序运行结果如下:
How many students?
4↙
How many courses?
3↙
Input scores:
60 60 60↙
70 70 70↙
80 80 80↙
90 90 90↙
Result:
60 60 60 180 60.0
70 70 70 210 70.0
80 80 80 240 80.0
90 90 90 270 90.0
目前程序存在错误,请找出错误所在并加以改正。
1. #include 2. #define STUD 30 /* 最多可能的学生人数 */ 3. #define COURSE 5 /* 最多可能的考试科目数 */ 4. void Total(int *pScore, int sum[], float aver[], int m, int n); 5. void Print(int *pScore, int sum[], float aver[], int m, int n); 6. int main() 7. { 8. int i, j, m, n, score[STUD][COURSE], sum[STUD]; 9. float aver[STUD]; 10. printf(\); 11. scanf(\, &m); 12. printf(\); 13. scanf(\, &n); 14. printf(\); 15. 16. for (i=0; i