问题遇到的现象和发生背景
C语言编写一个能计算学生平均成绩并保存为文件的程序。
某教师承担了某个班的教学工作,在一次测试之后,教师通常要把学生的成绩录入到计算机中保存起来,然后计算他所教班级的学生该课程的平均成绩值,试给教师写一个程序完成这样的工作。
注:先从in.txt读取数据,在q.c进行计算后,再输出数据到out.txt。
例如:
in.txt:65 65 65
out.txt:3 65.0
非标准答案,仅供参考!谢谢!
#include<stdio.h>
// 打开文件读取各个分数累加到total
// 返回学生人数n
size_t getsdataTo(FILE * in, double *total)
{
if (!in)
return 0;
double tmp;
size_t n = 0;
while (!feof(in))
{
if (fscanf(in, "%lf", &tmp) == 1);
{
*total += tmp;
n++;
}
}
return n;
}
int main()
{
char inF[]="in.txt";
char outF[]="out.txt";
size_t n=0; //考生人数
double avg=0.0; //平均分
double total=0.0;//总分
FILE *in=fopen(inF,"r");
FILE *out=fopen(outF,"w");
if(!in || !out)return -1;
//开始读取各个考生分数累加到total
n=getsdataTo(in, &total);
//计算平均分
if(n!=0)
avg=total/n;
//考生人数和平均分写到输出文件outF
fprintf(out, "%u %.1lf", n, avg);
fclose(in);
fclose(out);
return 0;
}