帮我补充完整并分析过程

从键盘上输入10个整数,程序按降序完成从大到小的排序。

#include <stdio.h>

int array[10];

sort( int *p, int *q )

{ int *max, *s;

if( ① )

return;

max=p; for( s=p+1; s<=q; s++)

if( *s > *max )

② ; swap( ③ );

sort( ④ ); }

swap( int *x, int *y ) { int temp;

temp=*x;

*x=*y;

*y=temp;

}

main()

{ int i; printf("Enter data :\n"); for( i=0; i<10; i++)

scanf("%d", &array[i]); sort( ⑤ );

printf("Output:");

for( i=0; i<10; i++)

printf("%d ", array[i]);

}

#include <stdio.h>
int array[10];
sort( int *p, int *q )
{
    int *max, *s;
    if( p==q )
        return;
              max=p;
                for(s=p+1;s<=q;s++)
                      if(*s>*max)
                         max=s ; swap(max,p );
                          sort(p+1,q );
}
swap( int *x, int *y )
{
    int temp;
    temp=*x;
         *x=*y;
            *y=temp;
}
int main()
{
    int i; printf("Enter data :\n");
    for(i=0;i<10;i++)
        scanf("%d", &array[i]);
        sort( array,array+9);
        printf("Output:");
        for(i=0;i<10;i++)
            printf("%d ", array[i]);
}
//1 2 3 4 5 6 7 8 9 10

这是选择排序的过程,第一次从待排序的数据元素中选出最大的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最大元素,然后放到已排序前面。以此类推,直到全部排序完成

  1. p == q
  2. max = s
  3. max,p
  4. p+1,q
  5. array,array+9

选择排序,看楼上老师的

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m