随机生成1000个0-100以内的整数,使用冒泡法按升序排序
怎么编译??
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define M 1000
int rannum(){
int a = rand()%100;
if(rand()%2==0) return a+1;
else return a;
}
void sort(int x[],int n){
int temp;
for(int i = 0;i<n;i++){
for(int j=0;j<n-i;j++){
if(x[j]>x[j+1]){
temp = x[j+1];
x[j+1] = x[j];
x[j] = temp;
}
}
}
}
int main(){
int a[M];
srand((unsigned)time(NULL)); //生成随机种子,否则每次得到的随机数都会一致
for(int i = 0 ;i<M;i++){
a[i]=rannum();
}
printf("排序前:");
for(int i = 0 ;i<M;i++){
printf("%d ",a[i]);
}
printf("\n");
sort(a,M);
printf("排序后:");
for(int i = 0 ;i<M;i++){
printf("%d ",a[i]);
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
int main()
{
int N=1000;
int j,k;
int t[1000];
for(j=0; j<N; j++)
{
t[j]=rand()%100;
}
for(j=0; j<N-1; j++)
{
for(k=0; k<N-1-j; k++)
{
if(t[k]>t[k+1])
{
int tem=t[k];
t[k]=t[k+1];
t[k+1]=tem;
}
}
}
printf("排序后前20个数:\n");
for(j=0; j<20; j++)
{
printf("%d ",t[j]);
}
printf("\n排序后倒数20个数:\n");
for(j=N-20; j<N; j++)
{
printf("%d ",t[j]);
}
return 0;
}