描述 给定一个整数序列(保证每一个数字都不相同),找出其中最大和最小值所在的位置,并将最大值和最小值所在位置对调,其他数值的位置保持不变,并输出此序列。 输入 入为两行: 第一行为整数N,表示序列的的长度; ( � ≤ 100 ) (N≤100) 第二行为N个整数,每个数之间以单个空格隔开(0~10000)。 输出 输出为一行,为最值对调后的整数序列 输入样例 1 5 1 2 3 4 5 输出样例1 5 2 3 4 1 c++ 代码
时间: 2024-03-25 20:38:20 浏览: 12
以下是 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` 函数将最大值和最小值对调。最后输出整个序列即可。
相关问题
给定一个整数序列(保证每一个数字都不相同),找出其中最大和最小值所在的位置,并将最大值和最小值所在位置对调,其他数值的位置保持不变,并输出此序列。(使用C++编写
代码如下)
```
#include <stdio.h>
#define MAX_LEN 100
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[MAX_LEN];
int n;
printf("Enter the length of the sequence: ");
scanf("%d", &n);
printf("Enter %d integers: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 找出最大值和最小值位置
int max_pos = 0, min_pos = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[max_pos]) {
max_pos = i;
}
if (arr[i] < arr[min_pos]) {
min_pos = i;
}
}
// 交换最大值和最小值位置
swap(&arr[max_pos], &arr[min_pos]);
// 输出序列
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
描述 给定一个整数序列(保证每一个数字都不相同),找出其中最大和最小值所在的位置,并将最大值和最小值所在位置对调,其他数值的位置保持不变,并输出此序列。 输入 入为两行: 第一行为整数N,表示序列的的长度; ( N ≤ 100 ) (N≤100) 第二行为N个整数,每个数之间以单个空格隔开(0~10000)。 输出 输出为一行,为最值对调后的整数序列 输入样例 1 5 1 2 3 4 5 输出样例1 5 2 3 4 1 c++ 代码
以下是C++代码实现:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int max_pos = max_element(a, a+n) - a;
int min_pos = min_element(a, a+n) - a;
swap(a[max_pos], a[min_pos]);
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
return 0;
}
```
首先读入整数序列,然后使用 `max_element` 和 `min_element` 函数分别找到最大值和最小值所在位置,再使用 `swap` 函数将它们对调。最后输出整数序列即可。