1 #include <stdio.h> 2 int main() 3 { 4 int a[5]={12,55,20,1,0}; 5 6 int *num[5]={&a[0], &a[1], &a[2], &a[3], &a[4]}; 7 8 int **p,i,j,k,t; 9 10 p=num; 11 12 for(i=0;i<4;i++) 13 { 14 k=i; 15 for(j=i+1;j<5;j++) 16 { 17 18 if( *num[k] < *num[j] ) k=j; 19 20 if(k!=i) 21 {t= *num[k]; *num [k]=*num[i]; *num[i]= t;} 22 } 23 } 24 for(p=num,i=0;i<5;i++,p++) 25 26 {printf("%d ",**p);} 27 28 printf("\n"); 29 30 31 return 0; 32 33 34 35 }
大到小 结果为20 55 12 1 0
#include <stdio.h> int main() { int a[5]={12,55,20,1,0}; int *num[5]={&a[0], &a[1], &a[2], &a[3], &a[4]}; int **p,i,j,k,t; p=num; for(i=0;i<4;i++) { k=i; for(j=i+1;j<5;j++) { if( *num[k] > *num[j] ) k=j; if(k!=i) {t= *num[k]; *num [k]=*num[i]; *num[i]= t;} } } for(p=num,i=0;i<5;i++,p++) {printf("%d ",**p);} printf("\n"); return 0; }
小到大 结果为0 1 12 20 55
不知道为啥会这样 排序问题也没找出来
求指教