有一个3×4的短阵,要求编程序求出每行中的最大值,在最大值中找出最小的一个记为min;再在每列中找出一个最小的,在最小值中找出最大的一个记为max。比较min和max的大小。用C++实现
时间: 2024-12-16 07:15:32 浏览: 5
你可以使用嵌套循环以及C++的`std::min`和`std::max`函数来实现这个功能。以下是使用C++编写的简单示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int findMinInRow(vector<int> row) {
int min = row[0];
for (int i = 1; i < row.size(); i++) {
if (row[i] < min)
min = row[i];
}
return min;
}
int findMaxInColumn(int column[], int numRows) {
int max = column[0];
for (int i = 1; i < numRows; i++) {
if (column[i] > max)
max = column[i];
}
return max;
}
int main() {
// 创建一个3x4的二维数组
vector<vector<int>> array = {{5, 10, 15, 20},
{25, 30, 35, 40},
{45, 50, 55, 60}};
int minRowValue = INT_MAX;
int minColValue = INT_MAX;
for (int i = 0; i < 3; i++) {
int minRow = findMinInRow(array[i]);
minRowValue = min(minRowValue, minRow);
}
for (int j = 0; j < 4; j++) {
int minCol = findMaxInColumn(&array[0][j], 3); // 注意这里传入的是列索引,因为数组是一维的
minColValue = min(minColValue, minCol);
}
cout << "Minimum of row minima: " << minRowValue << endl;
cout << "Maximum of column minima: " << minColValue << endl;
if (minRowValue < minColValue)
cout << "min is smaller" << endl;
else if (minRowValue > minColValue)
cout << "min is larger" << endl;
else
cout << "min and max are equal" << endl;
return 0;
}
```
在这个代码中,首先分别找到每个行的最大值并存储到`minRowValue`,然后查找每列的最小值并存储到`minColValue`。最后比较这两个值并打印结果。
阅读全文