- 创建一个文本文件t1.txt,在其中输入10个学生的学号、姓名、3门课成绩;
- 编一个程序,读取文本文件t1.txt中的学生信息,求每个学生的平均分,并按平均分将学生信息进行排序;
- 将排序之后的学生信息输出到文本文件t2.txt中。
学生信息定义如下:
struct student
{int num;
char name[10];
float cj[4]; //cj[3]表示平均分。
}
这个关于文件的程序怎么写?
c语言文件有关的一个例子不会做
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-天际的海浪 2021-12-05 19:15关注
#include <stdio.h> #include"string.h" #include <stdlib.h> #define N 100000 struct st{ char a[15]; char b[20]; int x,y,z; }; int fun1(int *x,int *y) { int t; t=*x; *x=*y; *y=t; } int fun2(char *x,char *y) { char *t; strcpy(t,x); strcpy(x,y); strcpy(y,t); } int main() { /*_________________________________________________*/ FILE *fp,*ok; char b[N + 1]; //判断文件是否打开 if ( (fp = fopen("D:\\操作文件1号.txt", "r")) == NULL )/*这里D:\\操作文件1号.txt 是路径;读取D盘下,名为(操作文件1号)的文本文件*/ { puts("操作文件1号读取失败!"); exit(0); } else { puts("操作文件1号读取成功"); puts("开始计算"); } /*__________________________________________*/ struct st s[111]; char t[20],str[N]; int aver[111]={0}; for(int i=0;i<5;i++) { fscanf(fp,"%s%s%d%d%d",s[i].a,s[i].b,&s[i].x,&s[i].y,&s[i].z); printf("%s %s %d %d %d\n",s[i].a,s[i].b,s[i].x,s[i].y,s[i].z); } printf("按平均成绩排序\n"); for(int i=0;i<5;i++) { aver[i]=(s[i].x+s[i].y+s[i].z)*1.0/3; } printf("\n"); for(int i=0;i<5;i++) { for(int j=0;j<4-i;j++) { if(aver[j]<aver[j+1]) { fun2(s[j].a,s[j+1].a); fun2(s[j].b,s[j+1].b); fun1(&aver[j],&aver[j+1]); fun1(&s[j].x,&s[j+1].x); fun1(&s[j].y,&s[j+1].y); fun1(&s[j].z,&s[j+1].z); } } } if ( (ok = fopen("D:\\操作文件2号.txt", "w")) == NULL )/*D:\\操作文件2号.txt 是路径;写入D盘下,名为(操作文件2号)的文本文件*/ { puts("操作文件2号写入失败!"); exit(0); } else { puts("操作文件2号写入成功"); } for(int i=0;i<5;i++) { fprintf(ok,"第%d名;%s %s %d %d %d\n",i+1,s[i].a,s[i].b,s[i].x,s[i].y,s[i].z); printf("第%d名;%s %s %d %d %d\n",i+1,s[i].a,s[i].b,s[i].x,s[i].y,s[i].z); } /*___________________________________________*/ //结束关闭文件 fclose(ok); fclose(fp); return 0; }
如果对你有帮助,可以给我个采纳吗,谢谢!!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
- ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
- ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
- ¥30 关于<main>标签页面跳转的问题
- ¥80 部署运行web自动化项目
- ¥15 腾讯云如何建立同一个项目中物模型之间的联系
- ¥30 VMware 云桌面水印如何添加
- ¥15 用ns3仿真出5G核心网网元
- ¥15 matlab答疑 关于海上风电的爬坡事件检测
- ¥88 python部署量化回测异常问题