编写函数,求出一个二维数组中各列最小值中最大的数及其下标。在main函数中验证。 要求:二维数组的行数、列数、数组元素均在 main函数中由键密输入。最简单的做法
时间: 2024-03-17 17:47:21 浏览: 62
函数:int **array2(int **arr,int n,int m) , C++ 输入二维数组 ,返回值二维数组
5星 · 资源好评率100%
以下是一个简单的实现:
```c++
#include <iostream>
using namespace std;
void findMinCol(int** arr, int rows, int cols, int& max, int& index) {
for (int i = 0; i < cols; i++) {
int min = arr[0][i];
for (int j = 1; j < rows; j++) {
if (arr[j][i] < min) {
min = arr[j][i];
}
}
if (i == 0 || min > max) {
max = min;
index = i;
}
}
}
int main() {
int rows, cols;
cout << "请输入二维数组的行数和列数:" << endl;
cin >> rows >> cols;
int** arr = new int*[rows];
for (int i = 0; i < rows; i++) {
arr[i] = new int[cols];
for (int j = 0; j < cols; j++) {
cout << "请输入二维数组的第" << i + 1 << "行第" << j + 1 << "列的元素:" << endl;
cin >> arr[i][j];
}
}
int max = 0, index = 0;
findMinCol(arr, rows, cols, max, index);
cout << "各列最小值中最大的数为:" << max << endl;
cout << "其所在的列下标为:" << index << endl;
for (int i = 0; i < rows; i++) {
delete[] arr[i];
}
delete[] arr;
return 0;
}
```
注意,这里使用了动态内存分配来构造二维数组,需要在程序结束时释放内存。
阅读全文