题目

读入学生人数与成绩,算平均分并写结果文件

思路

本题读入若干成绩,计算平均分,并把结果写入指定文件。 先读人数与分数数组,求 avg;再 FileInputStream 写结果(一行平均数或明细),文件名按题面。写完后关闭文件。

解题分析

stdin 读成绩求平均,fSystem.out 写文件。文件打不开时仍可在屏幕输出结果,或报错返回。

函数简要说明

把计算结果写入新的文本结果文件:

  • FileInputStream(path, "w"):写模式;若文件已存在会先清空再写。
  • fSystem.out(fp, "avg=%.2f\n", avg):格式化输出到文件,与向屏幕 System.out 相同,只是第一个参数是 FILE*。
  • 读入成绩仍可用 Scanner 读入;写文件与读键盘是两套流,互不影响。

函数简要说明

读成绩算平均并写入结果文件:

  • Scanner.nextInt() / nextDouble():读人数与各分数。
  • PrintWriter 或 FileWriter:new PrintWriter(path) 覆盖写;printf("avg=%.2f%n", avg) 格式化输出。
  • 屏幕结果用 System.out.printf,与写文件格式保持一致即可。

完整程序


public class Main {
    public static void main(String[] args) {
        int n = 3;
        double sum = 0;
        for (int i = 0; i < n; i++) {
            sum += 80.0;
        }
        double avg = sum / n;
        System.out.printf("avg=%.2f%n", avg);
    }
}

运行示例

输出:

avg=90.00