编写一个程序,从 data.txt 文件读取一批无序的数字,按降序排列后再写到新文件 dataNew.txt 文件中。
提示:读取文件 data.txt 数据后存放到一个数组中,然后对数组排序后,创建新文
件 dataNew.txt,并将结果写入文件。
用C语言编写一个程序
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
qfl_sdu 2021-07-09 17:29关注data.txt 的数据格式是什么样的?一个数据一行?还是空格分割?
一个数据一行:#include <stdio.h> #include <stdlib.h> int main() { int i,j,n,t; FILE* fp; int a[100]={0};//假设不到100个数 char tmp[8]={0}; if((fp = fopen("data.txt","r")) == 0) { printf("文件打开失败\n"); return 0; } n = 0; while(!feof(fp)) { for(j=0;j<8;j++) //清空上一次读取的数据 tmp[j] = 0; fgets(tmp,8,fp); //读取一行 if(tmp[0] == '\n' || tmp[0] == '\r' || tmp[0] == '\0') continue; else a[n++] = atoi(tmp); //将数据保存在数组中 } fclose(fp); //排序 for (i=0;i<n-1;i++) { for(j=0;j<n-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<n;i++) { fprintf(fp,"%d\n",a[i]); } fclose(fp); return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用