编写一个程序用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。n个整数在主函数中输入,最后在主函数中输出
时间: 2024-03-10 22:48:35 浏览: 57
C语言程序设计-编写函数fun对主程序中用户输入的具有10个数据的数组a按由大到小排序,并在主程序中输出排序结果;
5星 · 资源好评率100%
好的,以下是代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
void sort(int **p, int n);
int main() {
int n, i;
printf("请输入整数个数n:");
scanf("%d", &n);
// 动态分配n个整型空间
int *p = (int*)malloc(n * sizeof(int));
printf("请输入%d个整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", p + i);
}
// 将指针p的地址赋给指向指针的指针p1
int **p1 = &p;
// 调用排序函数
sort(p1, n);
// 输出排序后的结果
printf("排序后的结果为:");
for (i = 0; i < n; i++) {
printf("%d ", *(*p1 + i));
}
// 释放动态分配的内存空间
free(p);
return 0;
}
void sort(int **p, int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (*(*p + j) > *(*p + j + 1)) {
temp = *(*p + j);
*(*p + j) = *(*p + j + 1);
*(*p + j + 1) = temp;
}
}
}
}
```
这个程序中,我们使用了指向指针的指针p1,将指针p的地址赋给p1,然后通过p1来操作p所指向的内存空间。在sort函数中,我们通过*p来访问p所指向的内存空间,也就是n个整数。排序算法使用的是冒泡排序。
阅读全文