写一个函数,对用随机函数产生的10个整数按从小到大的顺序排序。(升序,用选择排序实现)

一定要改成选择排序的啊。
这是冒泡的:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void sort1(int s[],int n){
int i,j;
int temp;
for(i=0;i<n-1;i++)
for(j=9;j>=i+1;j--)
if(s[j]<s[j-1]){
temp=s[j];
s[j]=s[j-1];
s[j-1]=temp;
}
}
void main(){
int i,a[10];
srand(time(NULL));
printf("随机产生10个整数:\n");
for(i=0;i<10;i++)
a[i]=rand()%100;
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
sort1(a,10);
printf("排序后的结果:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
C语言编程

第1个回答  推荐于2017-09-16
voidselect_sort(int*a,intn)
{
registerinti,j,min,t;
for(i=0;i<n-1;i++)
{
min=i;//查找最小值
for(j=i+1;j<n;j++)
if(a[min]>a[j])
min=j;//交换
if(min!=i)
{
t=a[min];
a[min]=a[i];
a[i]=t;
}
}
}
百度百科上截的,不知道是否有帮助。本回答被提问者采纳
第2个回答  推荐于2017-10-12
程序如下:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void main()
{
int i,t,temp;
int a[50];
srand((unsigned)time(NULL));
for(i=0;i<50;i++)
{
a[i]=rand()%100;
if(a[i]<10)
a[i]=a[i]+10;
}
for(t=0;t<49;t++)
for(i=t+1;i<50;i++)
if(a[t]>a[i])
{
temp=a[t];
a[t]=a[i];
a[i]=temp;
}

for(i=0;i<50;i++)
{
printf("%d ",a[i]);
if((i+1)%10==0)
printf("\n");
}
}
第3个回答  2014-11-20
直接搜选择排序,然后百度知道就有。
相似回答