要求定义指针访问一维数组,实现将数组中最大元素和最小元素交换后,再输出所有元素。的源代码
时间: 2024-02-21 09:02:23 浏览: 76
好的,以下是符合您要求的 C++ 源代码:
```cpp
#include <iostream>
using namespace std;
void swap(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
}
int main() {
int arr[10] = {5, 2, 8, 4, 7, 1, 9, 3, 6, 0};
int *p = arr;
int max = *p;
int min = *p;
for (int i = 0; i < 10; i++) {
if (*(p + i) > max) {
max = *(p + i);
}
if (*(p + i) < min) {
min = *(p + i);
}
}
for (int i = 0; i < 10; i++) {
if (*(p + i) == max) {
swap(p, (p + i));
break;
}
}
for (int i = 0; i < 10; i++) {
if (*(p + i) == min) {
swap(p + 9, (p + i));
break;
}
}
for (int i = 0; i < 10; i++) {
cout << *(p + i) << " ";
}
cout << endl;
return 0;
}
```
在这个程序中,我们首先定义了一个整数数组 `arr`,并将其初始化为 {5, 2, 8, 4, 7, 1, 9, 3, 6, 0}。然后我们定义了一个指针 `p`,并将其指向数组的第一个元素。接着,我们利用指针对数组进行遍历,找到其中的最大值和最小值,并将最大值和最小值所在的元素与数组的第一个元素和最后一个元素交换位置。最后,我们再次遍历数组,输出所有的元素。
注意,这仅仅是一个示例程序,实际上您可以根据自己的需求修改数组的大小和内容,以及使用不同的交换元素的方法。
阅读全文