我正在尝试生成0到50之间的三个随机整数,计算平均值,然后打印结果。 这就是我到目前为止所做的:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package random.numbers;
import java.util.Random;
/**
*
* @author ericl_000
*/
public class RandomNumbers {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Random rand = new Random ();
int RandNum = 0;
for(int i =0; i < 3; i++)
{
RandNum = rand.nextInt(50);
System.out.println(RandNum);
}
int average = (RandNum);
System.out.println(average);
}
}
输出有3个随机数,但平均值是这3个数的最后一个数。我不知道如何获得这3个数字的平均值。 (我是Java新手。)
答案 0 :(得分:2)
计算平均值的逻辑不正确,平均逻辑是:
average = (num1+num2+num3+... .... +num N)/N
所以你的代码逻辑应该是:
Random rand = new Random();
int RandNum = 0;
float average = 0;
for(int i =0; i < 3; i++)
{
RandNum = rand.nextInt(50);
System.out.println(RandNum);
average = average+RandNum;
}
average = average/3;
System.out.println(average);
答案 1 :(得分:0)
平均公式是列表中所有数字的总和除以该列表中的项目数。您可以通过不断地将随机数添加到变量中来执行此操作,将其称为x,然后将其除以3(该列表中的项目总数)。
for(int i =0; i < 3; i++)
{
RandNum = rand.nextInt(50);
System.out.println(RandNum);
int x += RandNum; //the += sign adds the current value of x to the value of RandNum
}
int average = (x/3);
System.out.println(average);
这个答案假设你只使用3个随机数。这是使用整数然而你应该使用双精度,考虑到大多数平均值不是精确整数:
double RandNum = 0;
for(int i =0; i < 3; i++)
{
RandNum = rand.nextDouble(50);
System.out.println(RandNum);
double x += RandNum; //the += sign adds the current value of x to the value of RandNum
}
double average = (x/3);
System.out.println(average);
答案 2 :(得分:0)
示例代码:
import java.util.Random;
public class RandomNumbers {
public static void main (String [] args) {
Random rand = new Random();
int randomNum = 0, total = 0;
int count = 3;
for(int i = 0; i < count; i++)
{
// This gives you 0 to 49, does not include 50!
randomNum = rand.nextInt(50);
System.out.println(randomNum);
// Keep track of total
total += randomNum;
}
// Average is well, total divided by count
int average = total / count;
System.out.printf("Average (Integer division): %d%n", average);
// Using double
double averageDouble = total / ((double) count);
System.out.printf("Average (Double division): %7.3f%n", averageDouble);
}
}
<强>输出:强>
3
26
8
Average (Integer division): 12
Average (Double division): 12.333
注意:强>
nextInt(50)
将为您提供0到49. 答案 3 :(得分:0)
你会如何计算现实生活中的平均值?你添加数字,然后除以3.
int sum=0;
for(i=0; i<3; i++)
sum += rand.nextInt(50);
System.out.println(sum/3.0);
答案 4 :(得分:0)
您不会在生成随机数时保存它们。
for(int i =0; i < 3; i++)
{
RandNum = rand.nextInt(50);
System.out.println(RandNum);
}
对于循环的每次迭代,生成并打印随机数 但是没有保存。那么你怎么能在以后访问它们来计算平均值 试试这样的事情
for(int i =0; i < 3; i++)
{
RandNum += rand.nextInt(50);
}
这会将生成的随机数添加到已经生成的一个。所以基本上
RandNum将在循环的所有迭代结束时包含总和。
然后您可以使用以下内容打印平均值。
System.out.println(RandNum/3);
只需命名一个变量&#39; average&#39;,它就找不到平均值。你必须进行必要的计算。(。总和/ n)。
答案 5 :(得分:0)
不确定为什么这是一个复杂的问题。
bar
答案 6 :(得分:-1)
import java.util.Random;
public class RandomNumbers {
public static void main(String[] args) {
Random rand = new Random ();
int RandNum = 0;
int[] numbers = new int[]{rand.nextInt(50),rand.nextInt(50),rand.nextInt(50)};
double sum = 0;
for(int i =0; i < 3; i++)
{
System.out.println(numbers[i]);
}
for(int i=0; i < numbers.length ; i++)
sum = sum + numbers[i];
double average = sum / numbers.length;
System.out.println("Average value of array elements is : " + average);
}
}