输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个对换。用指针法
时间: 2023-12-04 18:14:21 浏览: 66
1.给出一个整数数组,求其中任意两个元素之差的最大值。
5星 · 资源好评率100%
好的,以下是C++代码实现:
```cpp
#include <iostream>
using namespace std;
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int arr[10];
cout << "请输入10个整数:" << endl;
for (int i = 0; i < 10; i++) {
cin >> arr[i];
}
int* p_min = &arr[0];
int* p_max = &arr[0];
for (int i = 1; i < 10; i++) {
if (arr[i] < *p_min) {
p_min = &arr[i];
}
if (arr[i] > *p_max) {
p_max = &arr[i];
}
}
swap(p_min, &arr[0]);
swap(p_max, &arr[9]);
cout << "交换后的数组为:" << endl;
for (int i = 0; i < 10; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
首先定义一个数组 `arr`,用循环读入10个整数。然后定义两个指针 `p_min` 和 `p_max` 分别指向数组中的最小值和最大值。循环遍历数组,如果找到比当前最小值小的数,则更新 `p_min` 指针;如果找到比当前最大值大的数,则更新 `p_max` 指针。最后调用 `swap` 函数分别交换最小值和第一个数的位置,以及最大值和最后一个数的位置。最后输出交换后的数组即可。
阅读全文