题目

从标准输入读入学生人数以及每个学生的成绩,计算所有学生的平均成绩,并将计算出的平均分格式化写入到输出文本文件中。

输入格式:第一行输入学生人数 n;随后 n 行每行输入一个整数成绩。

输出格式:控制台输出计算得到的平均成绩,并将 avg=xx.xx 同步写入 report.txt 文件。

数据范围与约定:1 ≤ n ≤ 500。

思路与算法

1. 统计累加
累加所有学生成绩,浮点除法 double avg = sum * 1.0 / n;。

2. 报表写入
以 "w" 写入模式打开目标文件,使用 fSystem.out.printf(fp, "平均分: %.2f\n", avg); 输出,演示控制台与文件同时输出的处理模式。

完整程序

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        if (!sc.hasNextInt()) return;
        int n = sc.nextInt();
        double sum = 0;
        for (int i = 0; i < n; i++) {
            sum += sc.nextDouble();
        }

        double avg = n > 0 ? sum / n : 0.0;
        System.out.printf("avg=%.2f%n", avg);
    }
}

运行示例

输入:

3
80.0
90.0
100.0

输出:

avg=90.00