要求: 利用matlab(或其他任何方式)生成100个随机数,并编制C语言程序进行从 小到大

要求:
利用matlab(或其他任何方式)生成100个随机数,并编制C语言程序进行从

小到大排序。

1、生成的随机数必须存放在文件中(.txt),在程序中读取文件数据(文件操作)

2、利用子函数实现排序算法(任意排序算法均可),在主函数中调用(函数调用)

3、必须利用指针存放数据,进行排序操作(指针操作)

#include "stdio.h"
#include <stdlib.h>
#include "time.h"
#define N 100
void mysort(int *p){//排序函数
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;
}
}
int main(int argc,char *argv[]){
int a[N],i;
FILE *fp;
if((fp=fopen("ccc.txt","w+"))==NULL){//创建文件
printf("Failed to create file...\n");
return 0;
}
srand((unsigned)time(NULL));
for(i=0;i<N;i++)//产生100个随机数写文件
fprintf(fp,i%10!=9 ? "%d " : "%d\n",rand()%1000);
rewind(fp);
i=0;
while(fscanf(fp,"%d",a+i++)!=EOF);//文件数据读到数组a中
fclose(fp);
mysort(a);//调用排序函数
for(i=0;i<N;i++)//输出看看
printf(i%10!=9 ? "%4d" : "%4d\n",a[i]);
return 0;
}

运行样例:

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