编写一个c++程序,在一个数组中选择最小值,找到最小值,将最小值与第一个数交换,最后输出这批数
时间: 2024-12-14 09:26:35 浏览: 5
在C++中编写一个程序,首先我们需要创建一个动态数组,然后找到最小值并将其与第一个元素交换。这里是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
int findMinAndSwap(std::vector<int>& nums) {
// 检查数组是否为空
if (nums.empty()) {
std::cout << "Array is empty!" << std::endl;
return -1; // 或者抛出异常
}
// 初始化最小值为第一个元素
int min_value = nums[0];
int first_index = 0;
// 遍历数组,查找最小值
for (size_t i = 1; i < nums.size(); ++i) {
if (nums[i] < min_value) {
min_value = nums[i];
first_index = i;
}
}
// 如果找到了最小值,交换第一个和最小值的位置
if (first_index != 0) {
std::swap(nums[0], nums[first_index]);
}
// 输出数组
for (const auto& num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
int main() {
std::vector<int> numbers = {5, 3, 9, 1, 7};
findMinAndSwap(numbers);
return 0;
}
```
这个程序首先检查数组是否为空,然后遍历数组,找出最小值并记录其索引。如果找到最小值不在第一个位置,就用`std::swap`函数交换两个元素。最后,它会打印出处理后的数组。
阅读全文