/*用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。
n个整数在主函数中输入,最后在主函数中输出。*/
#include <stdio.h>
#define N 5
int main()
{
int fun(int *p[]);
int a[N],*p[N];
int i;
printf("请输入整数:\n");
for(i = 0;i < N;i++)
{
scanf("%d",&a[i]);
}
for(i = 0;i < N;i++)
{
p[i] = &a[i];
}
fun(p);
printf("输出结果:\n");
for(i = 0;i < N;i++)
{
printf("%d\n",**(p + i));
}
}
int fun(int *p[])
{
int **q,*t;
q = p;
int i,j;
for(i = 0;i < N - 1;i++)
{
for(j = 0;j < N - 1 - i;j++)
{
if(**(q + j) > **(q + j + 1))
{
t = *(q + j);
*(q + j) = *(q + j + 1);
*(q + j + 1) = t;
}
}
}
}
谭浩强C程序设计(第四版)p292第21题
用p指向一维数组,然后用指针的指针指向p,通过改变p的指向来达到题目要求,原数组的值并没有改变,当然也可以在fun函数里改变一维数组里面的值。
本文介绍了一种使用指向指针的指针对整数数组进行排序的C语言实现方法。通过在主函数中输入整数,并在独立的排序函数中利用指针的指针改变指向,实现了对整数的排序而不改变原始数组的值。最后,在主函数中输出排序后的结果。

387

被折叠的 条评论
为什么被折叠?



