C语言:随机生成N个四位数并按降序排列,分别输出排序前后的N个数且每行10个;排序用选择法;怎么写?

要求:
1)N由define定义,如30或50.
2)分别输出排序前后的N个数。
3)产生N个随机4位数、排序(选择法)和输出(每行10个数)分别用3个自定义函数完成。
4)代码按如下格式书写——
#include...
#define...
int main(...){
变量、数据说明;
函数声明;
调用生成随机数函数生成N个随机数;
调用输出函数输出N个随机数;
调用排序函数对N个数降序排序;
调用输出函数输出排序后的N个随机数;
return 0;
}
3个自定义数函数定义...

代码文本:

#include "stdio.h"

#include <stdlib.h>

#include "time.h"

#define N 37

int main(int argc,char *argv[]){ 

int a[N];

void myset(int *,int);

void mysort(int *,int);

void myout(int *,int,int x=0);

myset(a,N);

myout(a,N);

mysort(a,N);

myout(a,N,1);

return 0;

}

void myset(int *p,int n){//随机数生成函数

srand((unsigned)time(NULL));

for(n--;n>=0;p[n--]=rand()%9000+1000);

}

void mysort(int *p,int n){//选择法排序

int i,j,k;

for(i=0;i<n;i++){

for(k=i,j=k+1;j<n;j++)

if(p[k]<p[j])

k=j;

if(k-i)

j=p[k],p[k]=p[i],p[i]=j;

}

}

void myout(int *p,int n,int x=0){//输出函数

int i,k;

puts(x==0 ? "Before ordering:" : "After ordering:");

for(k=i=0;i<n;i++)

printf(++k%10 ? "%5d" : "%5d\n",p[i]);

if(k%10)

putchar('\n');

}

供参考……

温馨提示:答案为网友推荐,仅供参考
相似回答