产生100个随机数,按照由大到小的顺序排序,并以文件的形式保存
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#define N 100
main()
{
int a[N],i,j,temp;
memset(a,0,sizeof(a)); // 对数组进行清零操作 头文件<string.h>或<memory.h>
srand((unsigned int)time(NULL)); //随机数的种子,一般用time,头文件<stdlib.h>与<time.h>
for(i=0;i<N;i++)
a[i]=rand(); //公式产生a~b的随机数使用表达式rand()%(b-a+1)+a此处即位数为0~100之间的随机数,头文件<stdlib.h>
for (i=0;i<N;i++)
{
printf ("%d ", a[i]);
}
printf("\n");
for(j=0;j<N-1;j++)
for(i=0;i<N-j-1;i++)
if(a[i]<a[i+1])
{ //冒泡排序
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
FILE*fp,*fout; //文件操作
fp=fopen("E:\\GOOD.txt","r");
if(fp==NULL) //判断文件是否被打开
printf("fail to open the file!\n");
else
{
printf("The file is open!\n");
fclose(fp);
}
fout=fopen("E:\\GOOD.txt","w");
for(i=0;i<N;i++)
printf("%d ",a[i]);
for(i=0;i<N;i++)
fprintf(fout,"%d ",a[i]);
fclose(fout);
return 0;
}
memset()中误用了strlen(实际应用sizeof)导致有警告;srand()中不用unsigned int运行结果也一样;
兴奋!对于还是皮毛的我而言,已经算是很兴奋的事,虽然还是有点冗长,还有待改进,还有很多的知识点要学,但是有点小进步很是值得举杯。主要要掌握文件操作、排序、随机数。对于排序还有待提高,比如可以使用sort()。