C语言实现:【问题描述】 编写一个名为sortn()的函数,使用指针将n个整数按升序排序。(这个函数不能用数组实现) 【样例输入】 6 1 5 -9 2 4 -6 【样例输出】 -9 -6 1 2 4 5
时间: 2024-02-25 19:58:39 浏览: 102
以下是实现代码:
```c
#include <stdio.h>
void sortn(int *n, int size) {
int i, j, temp;
for (i = 0; i < size - 1; i++) {
for (j = i + 1; j < size; j++) {
if (*(n + i) > *(n + j)) {
temp = *(n + i);
*(n + i) = *(n + j);
*(n + j) = temp;
}
}
}
}
int main() {
int n, i;
int a[100];
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
sortn(a, n);
for (i = 0; i < n; i++) {
printf("%d ", *(a + i));
}
return 0;
}
```
在这个程序中,我们定义了一个名为 `sortn` 的函数,它接受一个整数数组的指针和数组长度作为参数。它使用指针来遍历数组,并使用冒泡排序算法将数组中的元素按升序排序。
在程序的主函数中,我们首先读取输入的数组。然后,我们调用 `sortn` 函数来对数组进行排序。最后,我们使用指针算术运算来遍历排序后的数组,并打印出相应的输出。
需要注意的是,在 `sortn` 函数中,我们使用了指针算术运算来访问数组中的元素,并使用交换算法交换它们的位置。具体来说,我们使用 `*(n + i)` 来访问数组中第 `i` 个元素,其中 `n` 是数组的指针。
阅读全文