c程序设计 第八章习题 用指针的指针排序和用指针排序

来源:互联网 发布:疯狂java讲义精粹 知乎 编辑:程序博客网 时间:2024/05/16 02:03
//用指向指针的指针给n个整数排序并输出//将排序单独写成一个函数,n个整数从主函数输入,从主函数输出 #include <stdio.h>void sort(int **p,int n);int main(){int i,n,num[20],*pnum[20],**p;printf("input the number(n):");scanf("%d",&n);for(i=0;i<n;i++){   pnum[i]=&num[i];   //pnum[i]是指向一维数组num[i]的指针}printf("input some numbers\n");for(i=0;i<n;i++){   scanf("%d",pnum[i]);} p=pnum;    //pnum的类型是int **pointsort(p,n);for(i=0;i<n;i++)printf("%d\t",*pnum[i]);return 0;}void sort(int **p,int n){int i,j,temp;for(i=0;i<n-1;i++)   for(j=i+1;j<n;j++)   {   if(**(p+j)>**(p+i))    {    temp=**(p+j);    **(p+j)=**(p+i);    **(p+i)=temp; }    }}


再用指针对一个含有十个数的数组排序

#include <stdio.h>#define N 10void sort (int *p);int main(){int num[N] ,i,*p;printf("enter 10 numbers:");for(i=0;i<10;i++){scanf("%d",&num[i]);}p=&num[0];sort(p);printf("the minmum num is %d",num[9]);printf("\n");printf("the maxmum num is %d",num[0]);printf("\n");return 0;}void sort (int *p){int i,j,temp;for(i=0;i<9;i++)for(j=i+1;j<10;j++){if(*(p+j)>*(p+i)){temp=*(p+j);*(p+j)=*(p+i);*(p+i)=temp;}}}

对比记忆数组中的各种类型

原创粉丝点击