随机产生10个10-99范围内的整数,分别用选择和冒泡法将数据按从大到小递减的顺序排列,并显示排序结果

网上找的不管用啊 谢谢高手!

第1个回答  推荐于2016-05-11
#include<stdio.h>
#include<time.h>
#include<stdlib.h>

int random() //产生随机数10-99范围的随机数
{
int num;
num = rand()%100;
if(num<10)
num+=10;
return num;
}

void selectsort(int k[],int n) //选择法排序
{
int i,j,max,t;
for(i=0;i<n-1;i++)
{max=i;
for(j=i+1;j<n;j++)
if(k[j]>k[max])
max=j;
if(max!=i)
{t=k[max];
k[max]=k[i];
k[i]=t;
}
}
}

void bubblesort(int k[],int n) //冒泡法排序
{
int i,j,tmp,flag=1;
for(i=0;i<=n-1&&flag==1;i++)
{
flag=0;
for(j=0;j<n-i-1;j++)
{
if(k[j]<k[j+1])
{
tmp=k[j+1];
k[j+1]=k[j];
k[j]=tmp;
flag=1;
}
}
}
}

void main()
{
int a[10];
int i,t;
printf("这十个随机数依次是:\n");
srand( (unsigned)time( NULL ) );
for(i=0;i<10;i++)
{
a[i]=random();
printf("%d ",a[i]);
}
printf("\n请选择排序方法:\n1-----选择法\n2-----冒泡法\n");
printf("请输入你的选择:");
scanf("%d",&t);
if(t==1)
{
selectsort(a,10);
printf("选择法排序的结果是:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
else
{
bubblesort(a,10);
printf("冒泡法排序的结果是:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
printf("\n");
}
可以正常运行了,你看看吧。。。本回答被提问者采纳
相似回答