c语言编写一程序,从一个3行4列二维数组中找出每行的最大数及所在的行和列,并将最大值及所在行列值打印出来。要求将查找和打印的功能编一个函数,二维数组的输入在主函数中进行,并将二维数组通过指针参数传递的方式由主函数传到子函数。
时间: 2024-04-05 19:33:15 浏览: 85
好的,下面是代码实现:
```c
#include <stdio.h>
void findMax(int (*arr)[4], int row, int col) {
int max, maxRow, maxCol;
for (int i = 0; i < row; i++) {
max = arr[i][0];
maxRow = i;
maxCol = 0;
for (int j = 1; j < col; j++) {
if (arr[i][j] > max) {
max = arr[i][j];
maxCol = j;
}
}
printf("第 %d 行的最大值是 %d,所在的列是 %d\n", maxRow + 1, max, maxCol + 1);
}
}
int main() {
int arr[3][4] = {{1, 2, 3, 4}, {9, 8, 7, 6}, {5, 10, 15, 20}};
findMax(arr, 3, 4);
return 0;
}
```
在这个程序中,我们定义了一个 `findMax` 函数,用于查找每行的最大值及其所在的行和列。该函数接受一个二维数组 `arr` 的指针参数,以及数组的行数和列数。
在函数内部,我们使用两个循环遍历每一行的数据,找出该行的最大值及其所在的列。然后,我们将最大值、最大值所在的行和列打印出来。
在主函数中,我们定义了一个 3 行 4 列的二维数组 `arr`,并将其传递给 `findMax` 函数进行处理。最终,我们可以得到每行的最大值及其所在的行和列。
阅读全文