交换最小值和最大值pta
时间: 2023-09-04 10:16:23 浏览: 130
这道题目可以分为以下几个步骤来完成:
1. 找到最小值和最大值对应的下标。
2. 交换最小值和最大值。
3. 输出交换后的数组。
下面是示例代码的实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
int min_idx = 0;
int max_idx = 0;
for (int i = 0; i < n; i++)
{
if (a[i] < a[min_idx])
{
min_idx = i;
}
if (a[i] > a[max_idx])
{
max_idx = i;
}
}
int temp = a[min_idx];
a[min_idx] = a[max_idx];
a[max_idx] = temp;
for (int i = 0; i < n; i++)
{
cout << a[i];
if (i != n - 1)
{
cout << " ";
}
}
cout << endl;
return 0;
}
```
注意,为了方便起见,这里使用了 C++11 中的变长数组来保存输入的数组,如果你使用的是 C++98,那么需要使用动态内存分配来实现。此外,为了让输出结果更美观,每个元素之间需要输出一个空格,最后一个元素之后不需要输出空格,所以在输出数组元素的时候需要判断一下是否为最后一个元素。
阅读全文