用指针的方法将n个数按输入时顺序的逆序排序,用函数实现。解题思路和程序分析
时间: 2023-12-08 12:10:21 浏览: 84
解题思路:
1.定义一个函数,接收一个整型数组和数组的长度作为参数。
2.定义两个指针,一个指向第一个元素,另一个指向最后一个元素。
3.使用 while 循环,交换两个指针所指向的元素,并将指针向中间移动,直到两个指针相遇。
4.输出逆序排序后的数组。
程序实现:
```c
#include <stdio.h>
// 定义函数实现逆序排序
void reverse_sort(int *arr, int n)
{
int *start = arr; // 指向第一个元素
int *end = arr + n - 1; // 指向最后一个元素
while (start < end) {
// 交换两个指针所指向的元素
int temp = *start;
*start = *end;
*end = temp;
// 将指针向中间移动
start++;
end--;
}
}
int main()
{
int n, i;
printf("请输入数组的长度:");
scanf("%d", &n);
int arr[n];
printf("请输入%d个整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 调用函数实现逆序排序
reverse_sort(arr, n);
// 输出逆序排序后的数组
printf("逆序排序后的数组:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
示例输出:
```
请输入数组的长度:5
请输入5个整数:1 2 3 4 5
逆序排序后的数组:5 4 3 2 1
```
阅读全文