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

网上找的不管用啊 谢谢高手!
2024年12月05日 07:29
有1个网友回答
网友(1):

#include
#include
#include

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 {max=i;
for(j=i+1;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 {
if(k[j] {
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");
}
可以正常运行了,你看看吧。。。