C语言程序设计 练习题参考答案 第八章 文件(2)
/* 8.8从文件ex88_1.txt中取出成绩,排序后,按降序存放EX88_2.TXT中 */
#include "stdio.h"
#define N 10
struct student
{
int num;
char name[20];
int score[3]; /*不能使用float*/
float average;
};
void sort(struct student stu[]);
void print(FILE *fp, struct student stu[]);
void printtopfive(FILE *fp, struct student stu[]);
void main()
{
struct student s[N];
int i;
FILE *fp1,*fp2;
char ch;
if((fp1=fopen("c:\\ex88_1.txt","r"))==NULL)
{
printf("不能打开文件c:\\ex88_1.txt");
exit(1);
}
if((fp2=fopen("c:\\ex88_2.txt","w"))==NULL)
{
printf("不能打开文件c:\\ex88_2.txt");
exit(1);
}
for(i=0;i<N;i++)
{
fscanf(fp1,"%d%s%d%d%d",&s[i].num,s[i].name,&s[i].score[0],
&s[i].score[1],&s[i].score[2]);
s[i].average=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;
}
fprintf(fp2,"原始成绩报表\n");
print(fp2,s);
sort(s);
fprintf(fp2,"排序之后的成绩报表\n");
print(fp2,s);
fprintf(fp2,"前五名成绩报表\n");
printtopfive(fp2,s);
}
void sort(struct student stu[])
{
int i,k,j;
struct student t;
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<N;j++)
{
if(stu[k].average<stu[j].average)
k=j;
if(k!=i)
{
t=stu[i];
stu[i]=stu[k];
stu[k]=t;
}
}
}
}
void print(FILE *fp, struct student stu[])
{
int i;
fprintf(fp,"StudentID StudentName Score1 Score2 Score3 Average\n");
for(i=0;i<N;i++)
fprintf(fp,"%-10d%-12s%8d%8d%8d%8.1f\n",stu[i].num,stu[i].name,
stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].average);
}
void printtopfive(FILE *fp, struct student stu[])
{
int i;
fprintf(fp,"StudentName Average\n");
for(i=0;i<5;i++)
fprintf(fp,"%-12s%8.1f\n",stu[i].name,stu[i].average);
}
/*ex88_1.txt中取出成绩?
20001 姓名(1) 70 80 90
20002 姓名(2) 71 81 91
20003 姓名(3) 72 82 92
20004 姓名(4) 73 83 93
20005 姓名(5) 74 84 94
20006 姓名(6) 75 85 95
20007 姓名(7) 76 86 96
20008 姓名(8) 77 87 97
20009 姓名(9) 78 88 98
20010 姓名(10) 79 89 99
*/
/*排序后,按降序存放EX88_2.TXT中
原始成绩报表
StudentID StudentName Score1 Score2 Score3 Average
20001 姓名(1) 70 80 90 80.0
20002 姓名(2) 71 81 91 81.0
20003 姓名(3) 72 82 92 82.0
20004 姓名(4) 73 83 93 83.0
20005 姓名(5) 74 84 94 84.0
20006 姓名(6) 75 85 95 85.0
20007 姓名(7) 76 86 96 86.0
20008 姓名(8) 77 87 97 87.0
20009 姓名(9) 78 88 98 88.0
20010 姓名(10) 79 89 99 89.0
排序之后的成绩报表
StudentID StudentName Score1 Score2 Score3 Average
20010 姓名(10) 79 89 99 89.0
20009 姓名(9) 78 88 98 88.0
20008 姓名(8) 77 87 97 87.0
20007 姓名(7) 76 86 96 86.0
20006 姓名(6) 75 85 95 85.0
20005 姓名(5) 74 84 94 84.0
*/
转载于:https://www.cnblogs.com/emanlee/archive/2008/05/18/1202092.html
C语言程序设计 练习题参考答案 第八章 文件(2)相关推荐
- C语言程序设计 练习题参考答案 第七章 (2) 指针与数组 main函数形参
/* 7.16 实现测试字符串长度函数strlen() */ #include "stdio.h" int strlen(char *p); void main() { ...
- C语言程序设计习题参考答案
C语言QQ群:108168489 此群是普通群,限100人.无法容纳所有C语言同学,敬请谅解. 申请加入务必注明[班级和姓名](不注明班级和姓名,拒绝加入),加入群后修改群名片.课程结束后[取消该群] ...
- 合肥工业大学c语言是试卷,合肥工业大学2005-2007年C语言程序设计试卷参考答案.doc-资源下载人人文库网...
合肥工业大学2005-2007年<C语言程序设计>试卷参考答案.doc 合肥工业大学2005年C语言程序设计试卷参考答案一. 填空题(分,每空1分)1main( ) 或主函数 21 7 3 ...
- 最初编写的c语言程序称为,C语言程序设计复习参考答案
<C语言程序设计复习参考答案>由会员分享,可在线阅读,更多相关<C语言程序设计复习参考答案(46页珍藏版)>请在人人文库网上搜索. 1.随堂练习12]1. 下面哪些标识符属于合 ...
- c程序语言设计练习题,C语言程序设计练习题(含程序及参考答案)
<C语言程序设计练习题(含程序及参考答案)>由会员分享,可在线阅读,更多相关<C语言程序设计练习题(含程序及参考答案)(47页珍藏版)>请在人人文库网上搜索. 1.1.定义一个 ...
- c语言程序设计教程韩立毛答案,c语言程序设计教程201X韩立毛徐秀芳书后练习题参考答案...
c语言程序设计教程201X韩立毛徐秀芳书后练习题参考答案 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我 ...
- c语言高中题目及答案,高中信息技术 C语言程序设计练习题 选修1
专心 爱心 用心1 C C 语言程序设计语言程序设计 练习题练习题 一 单项一 单项选择题选择题 单项选择题要求从给出的四个备选答案中 选出一个最符合题意的答案 本类习题主要检 查对 C 语言基本概念 ...
- c语言只用a求正方形面积,C语言程序设计练习题(答案).docx
C语言程序设计练习题(答案)C语言程序设计练习题(答案) 上机实训项目实验1实验步骤1.进入VC环境 从"开始"→"程序"→"Microsoft Vi ...
- 2017年9月计算机二级c语言,2017年9月计算机二级C语言程序设计练习题
2017年9月计算机二级C语言程序设计练习题 2017年计算机二级考试即将在九月份进行,你准备好了吗?下面是小编为大家带来的计算机二级C语言程序设计练习题,欢迎阅读. 练习题一: 阅读程序题 1.in ...
最新文章
- 用可组合的构建块丰富用户界面?谷歌提出「可解释性」的最新诠释
- 熟悉 Linux 系统结构,推开Linux 大门
- [部署]VM11下CentOS7mini安装及配置
- html js什么作用,html錨點的作用和js選項卡錨點跳轉的使用
- HihoCode1721删除一个字符之后是回文字符串
- java web 嵌套播放器_请教一下tableau如何嵌套进自己开发的javaweb 项目中,谢谢了...
- .NET6之MiniAPI(十八):OpenAPI swagger
- 牛客题霸 [删除链表的倒数第n个节点] C++题解/答案
- 【PL/SQL】匿名块、存储过程、函数、触发器
- linux如何切换到root用户
- VS通过opencv显示图片和打开相机的显示生成dll用unity调用
- 【图像处理】基于matlab GUI图像滤镜(马赛克+蓝色透镜+素描)【含Matlab源码 1145期】
- HTML对网页的加密和解密方法大全
- html5选择时间,科技常识:HTML5新控件之日期和时间选择输入的实现代码
- Privates下载
- 我们为什么用GO语言来做区块链?
- win7锁定计算机自动关机,windows7怎么设置电脑自动关机_win7如何自动关机
- aso标题关键词可以重复吗
- div上绑定keyDown事件
- ubuntu18.04部署syslog服务器