Java基本平均数和随机数

时间:2017-08-05 03:59:49

标签: java random average

我只是使用随机和平均数字自己练习java编程,但我很难做到这一点。该程序将询问“输入#在0到100之间滚动”。然后我输入'3'然后输出将是随机的3个数字。 我的问题是在3个数字出来之后,我想找到这些数字的平均值。例如,我希望我的输出是

Your # is 89
Your # is 50
Your # is 12
Your avg is ##(//whatever the avg of numbers)

我的输出就像

Enter # to be rolled between 0 to 100
3
Your # is 89
your avg is 29
Your # is 39
your avg is 13
Your # is 76
your avg is 25

你能帮我解决这个问题吗?我知道我的代码很乱。

import java.util.Random;
import java.util.Scanner;

public class ranEx {

    public static void main(String[] args) {

        Random ranNumber = new Random();
        Scanner input = new Scanner(System.in);

        int number;
        int ran;

        System.out.println("Enter # to be rolled "
                + "between 0 to 100");
        number = input.nextInt();

        for(int i=0; i<number; i++) {
            ran=ranNumber.nextInt(100);

            System.out.println("Your # is " + ran);


            int avg=ran/number;

            System.out.println("your avg is " + avg);

        }       

    }

}

5 个答案:

答案 0 :(得分:0)

您需要在循环外定义avg,然后将所有数字添加到其中。最好将其称为sum并将其定义为double以防止舍入,这样您就可以在循环后将其除以number并获得平均值。

double sum = 0;
for(int i=0; i<number; i++) {
// ...
  sum += ran;
}
System.out.println("your avg is " + sum/number);

答案 1 :(得分:0)

int sum=0;
for(int i=0; i<number; i++) {
            ran=ranNumber.nextInt(100);

            System.out.println("Your # is " + ran);

            sum = sum+ran;

        }      
        System.out.println("your avg is " + sum/number);    

答案 2 :(得分:0)

经过测试: 用户必须输入一个数字整数:

import java.util.Random;
import java.util.Scanner;
public class ranEx {
public static void main(String[] args) {
    Random ranNumber = new Random();
    Scanner input = new Scanner(System.in);
    int number;
    int ran = 0;
    System.out.println("Enter A NUMBER  to be rolled "
            + "between 0 to 100");
    number = input.nextInt();
    for(int i=0; i<number; i++) {
        ran=ran+(ranNumber.nextInt(100));
        System.out.println("Your # is " + ran);
        int avg=ran/number;
        System.out.println("your avg is " + avg);
    }       
  }
}

输出:

run:
Enter A NUMBER  to be rolled between 0 to 100
5
Your # is 95
your avg is 19
Your # is 107
your avg is 21
Your # is 178
your avg is 35
Your # is 274
your avg is 54
Your # is 338
your avg is 67
BUILD SUCCESSFUL (total time: 2 seconds)

答案 3 :(得分:0)

在循环生成值之后,您只希望计算平均一次,循环之外。您可以按如下方式完成目标:

  1. 在循环
  2. 之前将累加器变量初始化为零
  3. 在循环内部,将每个生成的值添加到累加器
  4. 循环之后,将累加器值除以值数

答案 4 :(得分:0)

如果您只想要平均值,请定义一个保持累计总数的变量,然后除以滚动次数。

// double for large values and decimal division later on
double total= 0;

int rolls = 4;
for ( int x = 0 ; x < rolls; x++ ) {

    total += x;
}

// calculate average
double average = total / rolls;

// validate that it works, ( ( 0 + 1 + 2 + 3 ) / 4 ) == 1.5
Assert.assertEquals( 1.5d, average );