用C语言编写程序,使用指针方法输出二维数组中最大的元素及所在的行与列
时间: 2024-03-03 07:52:43 浏览: 95
C语言 指针与二维数组详解
好的,以下是参考代码:
```c
#include <stdio.h>
void findMax(int (*arr)[3], int rows, int cols, int *max, int *maxRow, int *maxCol) {
*max = arr[0][0]; // 初始化最大值为数组第一个元素
*maxRow = 0;
*maxCol = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (arr[i][j] > *max) {
*max = arr[i][j];
*maxRow = i;
*maxCol = j;
}
}
}
}
int main() {
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
int max, maxRow, maxCol;
findMax(arr, 2, 3, &max, &maxRow, &maxCol);
printf("Max element: %d\n", max);
printf("Max element position: [%d][%d]\n", maxRow, maxCol);
return 0;
}
```
解释一下代码:
- `findMax` 函数使用指针方法来输出二维数组中最大的元素及其所在的行与列。注意参数中的 `(*arr)[3]` 表示一个有 3 列的二维数组,`*max`、`*maxRow` 和 `*maxCol` 分别表示最大值、最大值所在行和最大值所在列的指针,函数内部使用双重循环遍历整个数组,当遇到比当前最大值还要大的元素时,更新最大值和对应的行和列。
- 在 `main` 函数中,我们定义了一个 2 行 3 列的二维数组 `arr`,然后调用 `findMax` 函数来寻找其中最大的元素及其位置,并将结果存储在 `max`、`maxRow` 和 `maxCol` 变量中。
- 最后我们使用 `printf` 函数输出结果。
阅读全文