以下是实现该要求的C++代码:
#include <iostream>
using namespace std;
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[8];
cout << "请输入8个整数:" << endl;
for (int i = 0; i < 8; i++) {
cin >> *(arr + i);
}
int maxIndex = 0;
int minIndex = 0;
for (int i = 1; i < 8; i++) {
if (*(arr + i) > *(arr + maxIndex)) {
maxIndex = i;
}
if (*(arr + i) < *(arr + minIndex)) {
minIndex = i;
}
}
swap(arr, arr + maxIndex);
swap(arr + 7, arr + minIndex);
cout << "交换后的数组为:" << endl;
for (int i = 0; i < 8; i++) {
cout << *(arr + i) << " ";
}
cout << endl;
return 0;
}
解释一下代码:
- 定义函数
swap
,用于交换两个整数指针所指的值。 - 创建长度为8的整型数组
arr
,并且提示用户输入8个整数,并将其存储到数组中。 - 遍历数组,找到最大值和最小值所在的下标。
- 利用
swap
函数,交换最大值和第一个元素,交换最小值和最后一个元素。 - 打印交换后的数组。
输出结果,如下所示:
请输入8个整数:
5 10 3 23 9 8 18 12
交换后的数组为:
23 10 3 5 9 8 12 18