编写一个程序,从data.txt文件中读取一批无序的数字,按降序排列后再写到新文件dataNew.txt文件中。
代码如下,如有帮助,请帮忙采纳一下,谢谢。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXNMB 10000 //假设最多可以存储10000个数字
int main()
{
int i,j;
double a[MAXNMB],t;
char tmp[10];
int nmb = 0; //实际数量
FILE* fp;
if((fp=fopen("data.txt","r"))==0)
{
printf("data.txt打开失败\n");
return 0;
}
//读取数据
while(!feof(fp))
{
memset(tmp,0,10);
fgets(tmp,10,fp); //假设每个数字一行
if(strlen(tmp) > 0) //消除空行的影响
a[nmb++] = atof(tmp);
}
fclose(fp);
//排序
for (i=0;i<nmb-1;i++)
{
for (j=0;j<nmb-i-1;j++)
{
if(a[j] < a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1]=t;
}
}
}
//写文件
fp = fopen("dataNew.txt","w");
for(i=0;i<nmb;i++)
fprintf(fp,"%g\n",a[i]);
fclose(fp);
return 0;
}