从键盘上输入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
这是选择排序的过程,第一次从待排序的数据元素中选出最大的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最大元素,然后放到已排序前面。以此类推,直到全部排序完成
选择排序,看楼上老师的
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m