C语言:编程:数组存储3名同学5门课程成绩 输出最好成绩及所在的行和列 要求:将输入、查找和打印的功能编写成函数 并将二维数组通过指针参数传递的方式由主函数传递到子函数中 输入格式: 每行输入一个同学的5门课的成绩,每个成绩之间空一格,见输入样例 输出格式: 输出共3行: 第一行输出,如:最高分是:97 第二行输出最高分所在的行数,如:行数是:2 第二行输出最高分所在的列数,如:列数是:3 输入样例: 在这里给出一组输入。例如: 87 67 76 78 85 92 78 79 86 88 79 85 87 97 89 输出样例: 在这里给出相应的输出。例如: 最高分是:97 行数是:2 列数是:3
时间: 2024-02-13 11:01:49 浏览: 368
下面是一个可能的实现,其中 `input` 函数用于输入成绩,`find_max` 函数用于查找最高分及其位置,`print_result` 函数用于输出结果:
```c
#include <stdio.h>
void input(int (*scores)[5], int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < 5; j++) {
scanf("%d", &scores[i][j]);
}
}
}
void find_max(int (*scores)[5], int n, int *max, int *row, int *col) {
*max = scores[0][0];
*row = 0;
*col = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 5; j++) {
if (scores[i][j] > *max) {
*max = scores[i][j];
*row = i;
*col = j;
}
}
}
}
void print_result(int max, int row, int col) {
printf("最高分是:%d\n", max);
printf("行数是:%d\n", row + 1);
printf("列数是:%d\n", col + 1);
}
int main() {
int scores[3][5];
input(scores, 3);
int max, row, col;
find_max(scores, 3, &max, &row, &col);
print_result(max, row, col);
return 0;
}
```
阅读全文