首页 新闻 会员 周边 捐助

二重指针的选择排序问题

0
[已关闭问题] 关闭于 2018-09-15 15:03
 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

 

不知道为啥会这样  排序问题也没找出来  

求指教

白日做梦。的主页 白日做梦。 | 菜鸟二级 | 园豆:214
提问于:2018-08-28 22:16
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册