我被困在试图计算1和20之间的3个随机整数的平均值。我必须将平均值舍入为int并重复10000次。当我测试的程序重复2次,我得到的输出:循环中的Rnd数的平均值java
Number is :18
Number is :14
Number is :2
sum is: 34
Average is: 11
Number is :13
Number is :3
Number is :6
sum is: 56
Average is: 18
但平均应该只是3个数字的平均值。这里,第二个循环将第一个循环的总和与第二个循环的总和相加,从而使平均值错误(总和:34 + 22 = 56)。我希望它是22,所以平均值为7.我注意到问题可能是这条线,sum + = n; ,但我不知道另一种方法来为每个循环添加3个数字来获得平均值。
package Histogram;
import java.util.Random;
public class RandomNumbers {
public static void main(String[] args) {
final int N = 2;
Random rand = new Random();
int n;
int average;
int sum = 0;
for (int a = 0; a < N; a++) {
for (int i = 0; i < 3; i++) {
n = rand.nextInt(20) + 1;
System.out.println("Number is :" + n);
sum += n;
}
average = sum/3;
System.out.println("sum is: " + sum);
System.out.println("Average is: " + average);
}
}
}
你可以你计算出的平均后sum'重置'为0。 –
您必须确保在正确的位置将'sum'初始化为0。 – ajb
事实上,你甚至不应该在外层循环之外声明n,sum和average。 n应该在内部循环中声明,sum和average应该在外部循环中声明。下一步是提取内部循环的主体,计算平均值,转化为它自己的方法。始终尽可能缩小变量的范围。对您的方法承担一项责任。 –