有一个长度为10的整数序列,其中最大值和最小值是唯一的,且不会出现在序列的第一和最后位置。请用c++代码编写程序,把序列中的最大值与第一个数交换,最小值与最后一个数交换,然后输出转换好的序列。
时间: 2024-03-22 10:39:42 浏览: 54
好的,下面是c++代码实现:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int nums[10]; // 定义整数序列
for (int i = 0; i < 10; i++) {
cin >> nums[i]; // 输入序列
}
int max_index = max_element(nums+1, nums+9) - nums; // 找到最大值的下标
int min_index = min_element(nums+1, nums+9) - nums; // 找到最小值的下标
// 交换最大值和第一个数
swap(nums[0], nums[max_index]);
// 交换最小值和最后一个数
swap(nums[9], nums[min_index]);
// 输出序列
for (int i = 0; i < 10; i++) {
cout << nums[i] << " ";
}
cout << endl;
return 0;
}
```
在程序中,我们首先定义了一个整数序列 `nums`,然后使用 `for` 循环输入整数序列。接着,我们使用 `max_element` 和 `min_element` 函数找到了最大值和最小值的下标,然后使用 `swap` 函数将最大值和第一个数交换,将最小值和最后一个数交换。最后,我们再次使用 `for` 循环输出转换好的序列。
阅读全文