C语言 指针排序 【问题描述】 编写一个名为sortn()的函数,使用指针将n个整数按升序排序。(这个函数不能用数组实现)
时间: 2024-01-27 18:06:14 浏览: 91
好的,以下是一个示例代码:
```c
#include <stdio.h>
void sortn(int *arr, int n) {
for(int i = 0; i < n - 1; i++) {
for(int j = i + 1; j < n; j++) {
if(*(arr + j) < *(arr + i)) {
int temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
}
}
int main() {
int a[5] = {3, 1, 4, 1, 5};
sortn(a, 5); // 传递数组和数组长度
printf("排序后:");
for(int i = 0; i < 5; i++) {
printf("%d ", *(a + i));
}
printf("\n");
return 0;
}
```
在这里,我们定义了一个 `sortn()` 函数,它接收一个整型指针和一个整型参数,指针指向长度为 n 的整型数组。通过双重循环,我们比较数组中的每一对元素,如果它们的顺序不正确,就交换它们的值。在 `main()` 函数中,我们声明一个长度为 5 的整型数组,并初始化它的值。我们将数组和数组长度传递给 `sortn()` 函数,最终打印出排序后的结果。注意,在这里我们使用指针访问数组元素,而不是使用数组下标。
阅读全文