一组10个数 最小的数和第一个数交换,最大的数和最后一个数交换 ,c语言指针
时间: 2024-12-28 07:38:37 浏览: 13
在C语言中,如果你有一组包含10个整数的数组,你可以使用指针来操作数组元素。首先,我们需要两个指针,一个指向数组的第一个元素(`arr[0]`),另一个指向数组的最后一个元素(`arr[9]`)。接下来,我们可以使用以下步骤:
1. **找出最小值和最大值**:
- 初始化两个指针 `min_ptr` 和 `max_ptr` 分别指向数组的第一个元素,然后遍历数组寻找最小值 `min_num` 和最大值 `max_num`。
2. **交换位置**:
- 找到最小值后,如果它不在第一个位置,就用 `min_ptr` 指向的值替换 `arr[0]`,并将 `min_ptr` 向后移动一位。
- 同样地,找到最大值后,如果它不在最后一个位置,就用 `max_ptr` 指向的值替换 `arr[9]`,并将 `max_ptr` 向前移动一位。
- 当这两个指针相遇时,表示已经找到了最小值和最大值的位置,并进行了相应的交换。
以下是简单的伪代码描述这个过程:
```cpp
int* arr; // 数组地址
int size = 10;
int* min_ptr = arr;
int* max_ptr = arr + 9;
while (min_ptr < max_ptr) {
*min_ptr = *(min_ptr + 1); // 如果当前不是最小值,更新 min_ptr
*max_ptr = *(--max_ptr); // 如果当前不是最大值,更新 max_ptr
}
// 现在 arr[0] 有最小值,arr[9] 有最大值
```
阅读全文