用C语言用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。n和各整数在主函数中输入。最后在主函数中输出。
时间: 2024-02-25 09:55:59 浏览: 75
用指向指针的方法对n个整数排序并输出。
好的,我知道了。下面是用指向指针的指针的方法对n个整数排序并输出的代码:
```c
#include <stdio.h>
#include <stdlib.h>
void sort(int **arr, int n);
int main() {
int n, i;
int *arr;
printf("请输入需要排序的整数个数:");
scanf("%d", &n);
arr = (int *) malloc(n * sizeof(int));
printf("请输入需要排序的整数:");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
sort(&arr, n);
printf("排序后的结果为:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
free(arr);
return 0;
}
void sort(int **arr, int n) {
int i, j;
int *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if ((*arr)[i] > (*arr)[j]) {
temp = *(arr + i);
*(arr + i) = *(arr + j);
*(arr + j) = temp;
}
}
}
}
```
在这个程序中,我们先让用户输入需要排序的整数的个数n,然后动态分配一个长度为n的整型数组arr,并让用户输入这n个整数。接下来,我们调用sort函数对这n个整数进行排序。sort函数的参数是一个指向指针的指针arr和整数个数n。在sort函数中,我们使用了冒泡排序的方法对这n个整数进行排序。最后,我们在主函数中输出排序后的结果,并释放动态分配的数组内存。
需要注意的是,这里的sort函数中的参数是一个指向指针的指针。这是因为我们需要改变指针的指向,从而改变数组中元素的顺序。如果只是传递一个指针,那么我们只能改变指针指向的内容,而不能改变指针本身的指向。
阅读全文