输入8个整数 将其中最大的数与第一个数对换 最小的数与最后一个数对换 用指针实现
时间: 2023-12-04 16:24:39 浏览: 35
好的,我来回答你的问题。以下是代码实现:
```c++
#include <iostream>
using namespace std;
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[8];
int* max = &arr[0];
int* min = &arr[0];
// 读入8个整数
for (int i = 0; i < 8; i++) {
cin >> arr[i];
// 找到最大值和最小值
if (arr[i] > *max) {
max = &arr[i];
}
if (arr[i] < *min) {
min = &arr[i];
}
}
// 交换最大值和第一个数
swap(max, &arr[0]);
// 如果最小值是第一个数,则需要重新找到最小值
if (min == &arr[0]) {
min = &arr[1];
}
// 交换最小值和最后一个数
swap(min, &arr[7]);
// 输出结果
for (int i = 0; i < 8; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
这段代码中,我们使用指针来记录最大值和最小值的位置,然后通过 `swap` 函数来交换数值。注意,如果最小值是第一个数,则交换后第一个数已经不是最小值了,需要重新找到最小值。
希望这个回答能够帮到你!