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-04-03 22:30:52 浏览: 98
以下是参考代码:
```c
#include <stdio.h>
// 输入函数
void input(int (*p)[5], int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < 5; j++) {
scanf("%d", &p[i][j]);
}
}
}
// 查找函数
void find_max(int (*p)[5], int n, int *max, int *row, int *col) {
*max = p[0][0];
*row = *col = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < 5; j++) {
if (p[i][j] > *max) {
*max = p[i][j];
*row = i;
*col = j;
}
}
}
}
// 输出函数
void output(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);
output(max, row, col);
return 0;
}
```
解释一下函数的作用:
- `input` 函数用于输入 3 名同学的 5 门课程成绩,通过指针参数传递二维数组。
- `find_max` 函数用于查找最高分,同时记录最高分所在的行和列,通过指针参数返回结果。
- `output` 函数用于输出最高分、行数和列数。
在主函数中,首先调用 `input` 函数输入成绩,然后调用 `find_max` 函数查找最高分和位置,最后调用 `output` 函数输出结果。
阅读全文