(6)编写程序,分别找出多个n×m数组的最大值、最小值,并输出两个值的下标。用C语言
时间: 2024-12-04 21:29:38 浏览: 23
在C语言中,为了找出多个n×m数组的最大值和最小值及其下标,你需要遍历每个数组并维护两个变量分别存储最大值、最小值以及相应的行和列索引。这里提供一个简单的示例,假设你有一个二维数组arr[]:
```c
#include <stdio.h>
// 函数声明,用于寻找最大值和最小值
void findMinMax(int arr[][m], int n, int m, int *max_val, int *min_val, int *max_row, int *max_col, int *min_row, int *min_col);
int main() {
int n = 3; // 数组行数
int m = 4; // 数组列数
int arr[n][m] = { {5, 8, 2, 9}, {1, 7, 3, 4}, {6, 0, 10, 5} }; // 示例数组
int max_val, min_val;
int max_row, max_col, min_row, min_col;
findMinMax(arr, n, m, &max_val, &min_val, &max_row, &max_col, &min_row, &min_col);
printf("Max Value: %d at row %d and column %d\n", max_val, max_row + 1, max_col + 1);
printf("Min Value: %d at row %d and column %d\n", min_val, min_row + 1, min_col + 1);
return 0;
}
// 找寻最大值和最小值函数
void findMinMax(int arr[][m], int n, int m, int *max_val, int *min_val, int *max_row, int *max_col, int *min_row, int *min_col) {
*max_val = arr[0][0]; // 初始设置最大值和最小值为数组的第一个元素
*min_val = arr[0][0];
*max_row = 0;
*max_col = 0;
*min_row = 0;
*min_col = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (arr[i][j] > *max_val) {
*max_val = arr[i][j];
*max_row = i;
*max_col = j;
}
if (arr[i][j] < *min_val) {
*min_val = arr[i][j];
*min_row = i;
*min_col = j;
}
}
}
}
```
这个程序首先初始化了最大值和最小值为数组的第一个元素,然后遍历整个数组。如果遇到比当前最大值还大的元素,就更新最大值和对应的索引;同样,如果遇到比当前最小值还小的元素,就更新最小值和对应的索引。
阅读全文