要求:
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');
}
供参考……