问题及代码:
/*
*Copyright(c)2016,烟台大学计算机与控制工程学院
*All right reserved.
*文件名称:main.cpp
*作 者:郝昱猛
*完成日期:2016年4月28日
*版 本 号:v1.0
*
*问题描述:用指向指针的指针的方法对n个整数排序并输出。
*输入描述:n和n个整数
*程序输出:排序后的整数
*/
#include <stdio.h>
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])//或者是*(*(p+j))>*(*(p+j+1))
{
temp=*p[j];
*p[j]=*p[j+1];
*p[j+1]=temp;
}
}
}
int main()
{
void sort(int **,int );
int i,n,data[20],**p,*pstr[20];
scanf("%d",&n);
for(i=0;i<n;i++)
pstr[i]=&data[i];
for(i=0;i<n;i++)
scanf("%d",pstr[i]);
p=pstr;
sort(p,n);
for(i=0;i<n;i++)
printf("%d ",*pstr[i]);
return 0;
}
运行结果: