题目
从标准输入读入学生人数以及每个学生的成绩,计算所有学生的平均成绩,并将计算出的平均分格式化写入到输出文本文件中。
输入格式:第一行输入学生人数 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