我需要找到随机数(1-9)的平均数,然后找到高于平均数的随机数的数量。
我找到了平均数,并试图找到高于平均数的数量,但它一直给我错误的答案。
public class AverageRandom{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("n? ");
int amount = sc.nextInt();
Random randNo = new Random();
double sum = 0;
int max = 9;
double average = 0;
int above;
above = 0;
for(int i = 0; i < amount; i++){
int next = randNo.nextInt(max) +1;
System.out.print(next + " ");
sum += next;
average = sum/amount;
if(next > average){
above++;
}
}
System.out.println("\nAverage = " + average);
System.out.print("Number of values above the average = " + above + "\n");
}
}
你可以使用2个循环和一个数组来存储值。
public class AverageRandom{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print("n? ");
int amount = sc.nextInt();
Random randNo = new Random();
double sum = 0;
int max = 9;
double average = 0;
int[] array = new int[amount]; // define an array of size 'amount'
for(int i = 0; i < amount; i++) {
array[i] = randNo.nextInt(max) + 1; // fill the array
System.out.print(array[i] + " ");
sum += array[i];
}
average = sum/array.length; // you can also calculate the average inside the loop
int above = 0;
for(int i = 0; i < array.length; i++) { // iterate the array (your random values)
if(array[i] > average){
above++;
}
}
System.out.println("\nAverage = " + average);
System.out.print("Number of values above the average = " + above + "\n");
}
}