032:编写函数,求出一个二维数组中各列最小值中最大的数及其下标。在main函数中验证。 要求:二维数组的行数、列数、数组元素均在 main函数中由键密输入。 (M)
时间: 2024-03-17 07:47:14 浏览: 40
以下是代码实现:
```c
#include <stdio.h>
void find_minmax(int arr[][100], int m, int n, int *max_val, int *max_idx) {
int min[n];
for (int j = 0; j < n; j++) {
min[j] = arr[0][j];
for (int i = 1; i < m; i++) {
if (arr[i][j] < min[j]) {
min[j] = arr[i][j];
}
}
if (j == 0 || min[j] > *max_val) {
*max_val = min[j];
*max_idx = j;
}
}
}
int main() {
int arr[100][100];
int m, n;
printf("请输入二维数组的行数和列数:");
scanf("%d%d", &m, &n);
printf("请输入二维数组的元素:\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
int max_val, max_idx;
find_minmax(arr, m, n, &max_val, &max_idx);
printf("各列最小值中最大的数是 %d,下标是 %d\n", max_val, max_idx);
return 0;
}
```
在函数 `find_minmax` 中,我们遍历每一列,找到该列中的最小值。如果该列的最小值比之前的最大值还大,就更新最大值和对应的下标。最后,函数返回最大值和对应的下标。
在 `main` 函数中,我们先读入二维数组的行数和列数,然后输入二维数组的元素。最后,调用 `find_minmax` 函数,输出结果。
阅读全文