int num = (int)(Math.random() * 50) + 50;
double total = 0;
for (int row = 1; row <= 5; row++) {
System.out.println();
System.out.println("Grades for student #" + row);
for (int col = 0; col < 10; col++) {
num = (int)(Math.random() * 50) + 50;
System.out.print(num + ", ");
total += num * 1.0;
}
System.out.println();
double average = total / 10;
System.out.println("Average for student is " + average);
}
我需要找到每个学生的平均成绩。成绩是随机生成的。该代码为第一行数据打印出正确的平均值,但其他四行是错误的。
答案 0 :(得分:2)
每次运行都需要在外循环中将total
重置为0。
for (int row=1; row<=5; row++) {
double total = 0; // <-- Move this inside the loop.
System.out.println();
System.out.println("Grades for student #" + row);
for (int col = 0; col<10; col++) {
double num = (int)(Math.random()*50)+50;
System.out.print(num+ ", ");
total += num; // no need to multiply by 1.0
}
System.out.println();
double average = total/10;
System.out.println("Average for student is " + average);
}