YTU 2972: C语言习题5.24--文件操作1

Posted wx62f237590ad0d

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YTU 2972: C语言习题5.24--文件操作1相关的知识,希望对你有一定的参考价值。


2972: C语言习题5.24--文件操作1


时间限制: 1 Sec   内存限制: 128 MB

提交: 248  

解决: 94


题目描述


文本文件score.dic 中存储了n名学生的信息(班级编号,姓名,成绩),每个学生信息占一行,每行的数据之间使用制表符分割,如下所示:

145811  fuxin 100

145811  chengxian 90

145812  zhangxue 92

145812  lijun 88

……

文件中存储的学生信息按照班级编号升序排列,每个班级的人数可以不同,要求读取文件中所有学生的成绩,计算每个班级的平均成绩,将班级编号和平均成绩输出。

主程序已给出,请根据提示补充缺失代码并提交该部分。

#include <stdio.h>
#include <stdlib.h>
int main()

int num=0; /* 班级人数计数 */
int sumScore=0; /* 累计成绩*/
int curClass; /* 当前班级 */
int curScore; /* 当前成绩 */
int lastClass; /* 上一个班级*/
int readItems; /* 正确读入数据数目 */
FILE *fin; /* 输入文件 */
fin=fopen("score.dic","r"); /* 打开输入文件读 */
if(!fin) /* 文件打开失败 */

fprintf(stderr,"error open file!\\n"); /* 输出错误信息到标准错误设备 */
exit(-1); /* 强制退出,并返回错误码 */
/****************/
/* 读入班级和成绩 */
/* 读入数据合法*/
/* 处理连续的相同班级数据*/
/* 班级人数累计 */
/* 班级成绩累计 */
/* 读入下一个班级和成绩 */
/* 输出平均成绩 */
/* 数据清零 */
/* 关闭输入文件*//*****************/
return 0;


输入


n名学生的信息(班级编号,姓名,成绩)(文件读入)


输出


每个班级的班级编号和平均成绩


样例输入

样例输出

145811  95145812  90

迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

#include <stdio.h>
#include <stdlib.h>
int main()

int num=0; /* 班级人数计数 */
int sumScore=0; /* 累计成绩*/
int curClass; /* 当前班级 */
int curScore; /* 当前成绩 */
int lastClass; /* 上一个班级*/
int readItems; /* 正确读入数据数目 */
FILE *fin; /* 输入文件 */
fin=fopen("score.dic","r"); /* 打开输入文件读 */
if(!fin) /* 文件打开失败 */

fprintf(stderr,"error open file!\\n"); /* 输出错误信息到标准错误设备 */
exit(-1); /* 强制退出,并返回错误码 */

while(readItems=fscanf(fin,"%d %*s %d",&curClass,&curScore))

if(readItems!=2)

break;

if((curClass==lastClass||num==0))

num++;
sumScore+=curScore;
lastClass=curClass;

else

printf("%d\\t%d\\n",lastClass,sumScore/num);
num=1;
sumScore=curScore;
lastClass=curClass;


printf("%d\\t%d\\n",lastClass,sumScore/num);
num=0;
sumScore=0;
curClass=0;
curScore=0;
fclose(fin);
return 0;



以上是关于YTU 2972: C语言习题5.24--文件操作1的主要内容,如果未能解决你的问题,请参考以下文章

YTU 2416: C语言习题 成绩输出

YTU 2427: C语言习题 整数排序

YTU 2422: C语言习题 n个数逆序

YTU 2444: C++习题 对象转换

YTU 2436: C++ 习题 输出日期时间--友元类

YTU 2432: C++习题 对象数组输入与输出