输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组 程序代码
时间: 2023-11-02 13:22:10 浏览: 155
以下是一个实现该要求的 C++ 代码示例:
```cpp
#include <iostream>
using namespace std;
void swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
void maxMinSwap(int arr[], int n) {
int maxIndex = 0, minIndex = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[maxIndex]) maxIndex = i;
if (arr[i] < arr[minIndex]) minIndex = i;
}
swap(arr[maxIndex], arr[0]);
if (minIndex == 0) minIndex = maxIndex; // 避免最小值在第一个元素时被重复交换
swap(arr[minIndex], arr[n-1]);
}
int main() {
int arr[] = {3, 1, 4, 2, 5};
int n = sizeof(arr) / sizeof(arr[0]);
maxMinSwap(arr, n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
该程序首先定义了一个 `swap` 函数,用于交换两个数的值。然后在 `maxMinSwap` 函数中,用循环遍历整个数组,找出最大值和最小值的下标,并将最大值与第一个元素交换,最小值与最后一个元素交换。最后,在 `main` 函数中调用 `maxMinSwap` 函数,并输出交换后的数组。
阅读全文