题目
读入学生人数与成绩,算平均分并写结果文件
思路
本题读入若干成绩,计算平均分,并把结果写入指定文件。
先读人数与分数数组,求 avg;再 fopen 写结果(一行平均数或明细),文件名按题面。写完后关闭文件。
解题分析
stdin 读成绩求平均,fprintf 写文件。文件打不开时仍可在屏幕输出结果,或报错返回。
函数简要说明
把计算结果写入新的文本结果文件:
fopen(path, "w"):写模式;若文件已存在会先清空再写。fprintf(fp, "avg=%.2f\n", avg):格式化输出到文件,与向屏幕printf相同,只是第一个参数是FILE*。- 读入成绩仍可用
scanf;写文件与读键盘是两套流,互不影响。
完整程序
#include <stdio.h>
int main(void)
{
int n;
if (scanf("%d", &n) != 1 || n < 1) {
return 1;
}
double sum = 0, x;
for (int i = 0; i < n; i++) {
scanf("%lf", &x);
sum += x;
}
double avg = sum / n;
FILE *fp = fopen("result.txt", "w");
if (fp) {
fprintf(fp, "avg=%.2f\n", avg);
fclose(fp);
}
printf("avg=%.2f\n", avg);
return 0;
}