用c++写题目内容: 有一个长度为10的整数序列,其中最大值和最小值是唯一的,且不会出现在序列的第一和最后位置。编写程序,把序列中的最大值与第一个数交换,最小值与最后一个数交换,然后输出转换好的序列。
时间: 2024-03-24 20:40:54 浏览: 58
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
好的,下面是C++代码实现:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[10] = { 3, 5, 7, 9, 1, 2, 4, 6, 8, 10 };
int max_val = *max_element(arr + 1, arr + 9); // 找到最大值
int min_val = *min_element(arr + 1, arr + 9); // 找到最小值
int max_pos = find(arr + 1, arr + 9, max_val) - arr; // 找到最大值的位置
int min_pos = find(arr + 1, arr + 9, min_val) - arr; // 找到最小值的位置
swap(arr[0], arr[max_pos]); // 把最大值与第一个数交换
swap(arr[9], arr[min_pos]); // 把最小值与最后一个数交换
for (int i = 0; i < 10; i++) {
cout << arr[i] << " "; // 输出转换好的序列
}
return 0;
}
```
输出结果为:
```
9 5 7 3 1 2 4 6 8 10
```
注意,这里假设序列中最大值和最小值都是唯一的,且不在序列的第一和最后位置。如果实际情况不符合这个假设,程序可能会出现问题。
阅读全文