#include <stdio.h>
#include <stdlib.h>
/* 用指向指针的指针的方法对n个整数排序并输出 。要求将排序单独写成一个函数。n个整数在主函数中输入,最后在主函数中输出*/
int main(int argc, char *argv[]) {
void sort(int **p,int n);
int i,n,data[20],**p,*pstr[20];
printf("input n \n");
scanf("%d",&n);
for(i=0;i<n;++i)
{
pstr[i]=&data[i];
}
printf("input %d integer numbers:",n);
for(i=0;i<n;++i)
{
scanf("%d",pstr[i]);
}
p=pstr;
sort(p,n);
printf("Now,the sequence is :\n");
for(i=0;i<n;i++)
{
printf("%d ",*pstr[i]);
}
return 0;
}
void sort(int **p,int n)
{
int i,j, *temp;
for(i=0;i<n-1;i++) // 这里是n-1 而不是n 万分注意
{
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;
}
}
}
}
#include <stdlib.h>
/* 用指向指针的指针的方法对n个整数排序并输出 。要求将排序单独写成一个函数。n个整数在主函数中输入,最后在主函数中输出*/
int main(int argc, char *argv[]) {
void sort(int **p,int n);
int i,n,data[20],**p,*pstr[20];
printf("input n \n");
scanf("%d",&n);
for(i=0;i<n;++i)
{
pstr[i]=&data[i];
}
printf("input %d integer numbers:",n);
for(i=0;i<n;++i)
{
scanf("%d",pstr[i]);
}
p=pstr;
sort(p,n);
printf("Now,the sequence is :\n");
for(i=0;i<n;i++)
{
printf("%d ",*pstr[i]);
}
return 0;
}
void sort(int **p,int n)
{
int i,j, *temp;
for(i=0;i<n-1;i++) // 这里是n-1 而不是n 万分注意
{
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;
}
}
}
}