问题描述:第四十三讲项目3.1(请编程从english.dat中读取数据,求出这次考试的平均成绩,并统计输出优秀人数和不及格人数。)的基础上改成项目(2)
程序代码
#include <stdio.h>
#include <stdlib.h>
/*
*csdn学院--2016级
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:Myfun102.c
*作者:小臣小仁
*完成日期:2017年2月12日
*/
int main()
{
int score; //读入的成绩
int excelent=0, fail=0,count=0;//分别代表优秀、不及格人数、总人数
double sum=0,ave; //sum: 成绩和,ave: 平均分
//以输入的方式(ios::in)打开文件
FILE *fp,*fp1;
fp=fopen("english.dat","r");
if(fp==NULL)
{
printf("open error!\n");
exit(0);
}
if((fp1=fopen("statictic.dat","w"))==NULL)
{
printf("open error!\n");
exit(0);
}
while(fscanf(fp,"%d",&score)!=EOF) //当读取成功……
{
count++;
sum+=score;
if(score>=90)
excelent++;
else if(score<60)
fail++;
}
ave=sum/count;
fprintf(fp1,"总人数:%d,\n平均成绩:%.2f,\n优秀人数:%d,\n不及格人数:%d\n",count,ave,excelent,fail);
fclose(fp);
fclose(fp1);
//下面输出结果
printf("总人数为:%d\n", count);
printf("平均成绩为:%.2f\n", ave);
printf("优秀人数:%d\n", excelent);
printf("不及格人数:%d\n", fail);
return 0;
}
输出结果
(屏幕输出结果)
(statictic.dat文件结果)
知识点总结
通过fprintf函数将得到的内容写入到文件中去,下面是english.dat文件链接,学生成绩内容
心得体会
作为一个才入门的大学菜鸟,可能许多对方不合格,望包涵