我想要这个完整的代码要求定义指针访问一维数组,实现将数组中最大元素和最小元素交换后,再输出所有元素。
时间: 2024-02-19 12:57:53 浏览: 71
好的,下面是一个实现该功能的 C++ 代码:
```c++
#include <iostream>
using namespace std;
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
const int size = 5;
int arr[size] = { 3, 6, 2, 1, 7 };
int* max = &arr[0];
int* min = &arr[0];
// 找到最大值和最小值的指针
for (int i = 1; i < size; i++) {
if (*max < arr[i]) {
max = &arr[i];
}
if (*min > arr[i]) {
min = &arr[i];
}
}
// 交换最大值和最小值
swap(max, min);
// 输出所有元素
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
在这个程序中,我们定义了一个 `swap` 函数,该函数接受两个指针作为参数,并交换它们所指向的值。然后,在 `main` 函数中,我们首先声明一个大小为 5 的整型数组 `arr`,并将其初始化。接着,我们定义两个指针变量 `max` 和 `min` 分别指向数组中的第一个元素。我们遍历数组,比较每个元素与 `max` 和 `min` 所指向的元素的大小,如果找到更大或更小的元素,则更新 `max` 或 `min` 指针。最后,我们调用 `swap` 函数交换 `max` 和 `min` 指针所指向的元素。最后,我们输出数组中所有元素。
希望这个代码能帮到你!
阅读全文