写一个c++程序交换数组中的最大和最小值并且不用指针
时间: 2024-10-23 12:11:02 浏览: 66
当然可以,下面是一个简单的C++程序,它使用数组下标而不是指针来交换数组中的最大值和最小值:
```cpp
#include <iostream>
void swapMaxMin(int arr[], int n) {
// 初始化最大值和最小值
int max = arr[0], min = arr[0];
// 遍历数组找到最大值和最小值
for (int i = 1; i < n; ++i) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
// 如果最大值不是最小值,交换它们
if (max != min) {
arr[0] = max;
arr[n - 1] = min;
}
}
int main() {
int arr[] = {5, 2, 9, 1, 7};
int size = sizeof(arr) / sizeof(arr[0]);
std::cout << "Before swapping:\n";
for (int i : arr) {
std::cout << i << " ";
}
std::cout << "\n";
swapMaxMin(arr, size);
std::cout << "After swapping:\n";
for (int i : arr) {
std::cout << i << " ";
}
std::cout << "\n";
return 0;
}
```
在这个程序中,`swapMaxMin` 函数遍历数组,找出最大值和最小值,然后直接将它们与数组的两端对换,实现了无指针的交换操作。
阅读全文