有一个长度为10的整数序列,其中最大值和最小值是唯一的,且不会出现在序列的第一和最后位置。编写C++程序,把序列中的最大值与第一个数交换,最小值与最后一个数交换,然后输出转换好的序列。
时间: 2024-03-23 13:38:46 浏览: 47
好的,这道题目可以按照以下步骤来实现:
1. 定义一个长度为10的整数数组,用于存储序列。
2. 通过循环,输入10个整数并存储到数组中。
3. 找到数组中的最大值和最小值,并记录它们的下标。
4. 进行交换操作,把最大值和第一个数交换,最小值和最后一个数交换。
5. 循环输出转换好的序列。
下面是对应的C++代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int nums[10];
int max_index = 0, min_index = 0;
// 输入10个整数
for(int i=0; i<10; i++) {
cin >> nums[i];
// 记录最大值和最小值的下标
if(nums[i] > nums[max_index]) {
max_index = i;
}
if(nums[i] < nums[min_index]) {
min_index = i;
}
}
// 交换最大值和第一个数,最小值和最后一个数
int temp = nums[max_index];
nums[max_index] = nums[0];
nums[0] = temp;
if(min_index == 0) {
min_index = max_index; // 如果最小值在第一个位置,需要更新下标
}
temp = nums[min_index];
nums[min_index] = nums[9];
nums[9] = temp;
// 输出转换好的序列
for(int i=0; i<10; i++) {
cout << nums[i] << " ";
}
cout << endl;
return 0;
}
```
希望能够帮助到您!
阅读全文