输入n个整数到数组中,将数组中的最小值与第0个元素对调,将数组中的最大值与最后一个元素对调,输出调换后的数组(用指针实现
时间: 2024-11-13 21:19:53 浏览: 10
在C++中,你可以使用两个指针,一个指向数组的第一个元素(即最小值候选),另一个指向数组的最后一个元素(即最大值候选)。以下是使用指针的一种简单实现方法:
```cpp
#include <iostream>
using namespace std;
void swapMinMax(int* arr, int n) {
if (n <= 1) return; // 如果数组只有一个元素或为空,无需交换
int min_index = 0;
int max_index = n - 1;
// 找出最小值和最大值的索引
for (int i = 1; i < n; ++i) {
if (arr[min_index] > arr[i]) min_index = i;
if (arr[max_index] < arr[i]) max_index = i;
}
// 用指针交换最小值和第一个元素,以及最大值和最后一个元素
int* temp = arr[min_index]; // 临时存储最小值
arr[min_index] = arr[0];
arr[0] = temp;
temp = arr[max_index];
arr[max_index] = arr[n - 1];
arr[n - 1] = temp;
}
int main() {
int nums[] = {5, 3, 8, 2, 9};
int size = sizeof(nums) / sizeof(nums[0]);
cout << "Original array: ";
for (int i : nums) {
cout << i << " ";
}
swapMinMax(nums, size);
cout << "\nArray after swapping: ";
for (int i : nums) {
cout << i << " ";
}
阅读全文