描述 给定一个整数序列(保证每一个数字都不相同),找出其中最大和最小值所在的位置,并将最大值和最小值所在位置对调,其他数值的位置保持不变,并输出此序列。 输入 入为两行: 第一行为整数N,表示序列的的长度; ( � ≤ 100 ) (N≤100) 第二行为N个整数,每个数之间以单个空格隔开(0~10000)。 输出 输出为一行,为最值对调后的整数序列 输入样例 1 5 1 2 3 4 5 输出样例1 5 2 3 4 1 c++ 代码
时间: 2024-03-25 13:38:20 浏览: 65
任意给定 n 个整数,求这 n 个整数序列的和、最小值、最大值
以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
int max_idx = max_element(nums.begin(), nums.end()) - nums.begin();
int min_idx = min_element(nums.begin(), nums.end()) - nums.begin();
swap(nums[max_idx], nums[min_idx]);
for (int i = 0; i < n; i++) {
cout << nums[i] << " ";
}
cout << endl;
return 0;
}
```
该程序先读入整数序列,然后使用 `max_element` 函数和 `min_element` 函数找到最大值和最小值所在的位置,最后使用 `swap` 函数将最大值和最小值对调。最后输出整个序列即可。
阅读全文