写一个C语言代码:输入输出M行N列的二维数组所有元素的值,并且求最大元素的值及其所在的行号和列号,要求每个模块都用函数完成。根据提示,在右侧编辑器 Begin-End 区间补充代码,定义三个函数分别进行数组输入、输出和求最大元素的值及其所在的行号和列号,要求利用函数形参返回多个结果。
时间: 2024-01-24 17:17:20 浏览: 117
```c
#include <stdio.h>
#define M 3
#define N 4
void input(int arr[M][N]);
void output(int arr[M][N]);
void findMax(int arr[M][N], int *max, int *maxRow, int *maxCol);
int main() {
int arr[M][N];
int max, maxRow, maxCol;
input(arr);
output(arr);
findMax(arr, &max, &maxRow, &maxCol);
printf("The max element is %d, located at row %d, col %d\n", max, maxRow, maxCol);
return 0;
}
void input(int arr[M][N]) {
printf("Please input %d rows, %d cols:\n", M, N);
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
scanf("%d", &arr[i][j]);
}
}
}
void output(int arr[M][N]) {
printf("The array is:\n");
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
void findMax(int arr[M][N], int *max, int *maxRow, int *maxCol) {
*max = arr[0][0];
*maxRow = 0;
*maxCol = 0;
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
if (arr[i][j] > *max) {
*max = arr[i][j];
*maxRow = i;
*maxCol = j;
}
}
}
}
```
阅读全文