我只是使用随机和平均数字自己练习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);
}
}
}
答案 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)
在循环生成值之后,您只希望计算平均一次,在循环之外。您可以按如下方式完成目标:
答案 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 );