C++编写程序寻找一个数组的最小值,并将其与第一行交换
时间: 2024-09-15 11:12:52 浏览: 39
在C++中,你可以使用循环结构遍历数组找到最小值,然后将它与数组的第一行元素进行交换。以下是一个简单的示例,假设我们有一个二维数组`arr`:
```cpp
#include <iostream>
// 函数用于查找数组的最小值并与其第一行的第一个元素交换
void swapMinWithFirstRow(int arr[4][4], int& minVal) {
// 初始化最小值为第一行第一个元素
minVal = arr[0][0];
// 遍历第一行找寻最小值
for (int i = 1; i < 4; i++) {
if (arr[0][i] < minVal) {
minVal = arr[0][i];
}
}
// 检查第二行是否有比最小值还小的元素
for (int i = 0; i < 4; i++) {
if (arr[1][i] < minVal) {
std::swap(arr[0][0], arr[1][i]); // 如果有,则交换第一行的最小值与该位置的元素
} else if (arr[1][i] == minVal && i == 0) { // 如果找到的是第一行的最小值,不需要再次交换
break;
}
}
}
int main() {
int arr[4][4] = {{5, 8, 2, 9}, {7, 1, 6, 3}, {4, 10, 11, 0}, {12, 15, 13, 14}};
// 获取数组中第一行的最小值
int minVal;
swapMinWithFirstRow(arr, minVal);
// 打印交换后的数组
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
std::cout << arr[i][j] << " ";
}
std::cout << "\n";
}
return 0;
}
```
这个程序首先初始化`minVal`为第一行的第一个元素,然后分别检查第一行和第二行的其他元素,如果发现更小的值就进行交换。注意,这里只考虑了第一列作为比较范围,如果你希望遍历整个数组,只需稍作修改即可。
阅读全文