4.编写一个函数sort,使20个整数由小到大的顺序排列。在主函数中输出排好序的数。本程序编写函数部分要求要用指针来解决。
时间: 2023-12-13 07:01:02 浏览: 35
在函数sort中,我们可以使用指针来解决。首先,我们声明一个指向整型数组的指针arr,用以指向待排序的数组。然后,我们使用冒泡排序算法对数组进行排序。冒泡排序算法的基本思想是通过相邻元素的比较和交换,将较大的元素逐渐推向数组的后面,从而实现排序的目的。
以下是使用指针解决排序问题的函数sort的代码实现:
```c
void sort(int *arr, int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-1-i; j++) {
if (*(arr+j) > *(arr+j+1)) {
temp = *(arr+j);
*(arr+j) = *(arr+j+1);
*(arr+j+1) = temp;
}
}
}
}
int main() {
int arr[20] = {9, 3, 6, 1, 8, 5, 4, 7, 2, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
int i;
sort(arr, 20);
printf("排序后的数组为:\n");
for (i = 0; i < 20; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在主函数中,我们定义一个包含20个整数的数组arr,并初始化它。然后,我们调用函数sort对数组进行排序。最后,我们使用循环打印出排好序的数组。
以上的代码会输出以下结果:
```
排序后的数组为:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
```
可以看到,数组已经按照从小到大的顺序排列好了。