java中的算术平均值
问题陈述 需要找到用户输入的数字的算术平均值 约束java中的算术平均值,java,Java,问题陈述 需要找到用户输入的数字的算术平均值 约束 我们不能要求用户定义/共享用户计划输入的“数字”数量,即,我们不能要求用户告知他将输入多少数字 如果用户输入-1,则应停止输入并显示算术平均值 我们只要求用户输入要计算算术平均值的数字。比如:用户输入 2. 4. 7. 10 -1 因此,我们需要计算2,4,7,10的算术平均值并显示结果 代码 public static void main(String[] args) { // TODO Auto-generated metho
- 我们不能要求用户定义/共享用户计划输入的“数字”数量,即,我们不能要求用户告知他将输入多少数字
- 如果用户输入-1,则应停止输入并显示算术平均值
- 我们只要求用户输入要计算算术平均值的数字。比如:用户输入 2. 4. 7. 10 -1 因此,我们需要计算2,4,7,10的算术平均值并显示结果
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum = 0;
do {
System.out.println("Value is :" + n);
count++;
sum = sum + n;
}while ( n != -1);
}
它进入无限循环,我也尝试过使用if/else,但没有成功。请帮忙
对于以下内容的输入:
3
9
4
-7
0
2
-1
算术平均值应计算为3,9,4,7,0,2,29,即1.8当您读取“n”作为输入时,n始终是第一个值,循环是无限的。尝试以下操作:
Scanner sc = new Scanner(System.in);
int sum = 0;
int count = 0;
int n = 0;
do {
System.out.println("Enter next number(-1 to exit): ");
n = sc.nextInt();
System.out.println("Value is :" + n);
if(n != -1)
{
count++;
sum = sum + n;
}
}while ( n != -1);
sc.close();
System.out.println("Mean is: " + (double) sum/count);
}
您需要移动
sc.nextInt()将>编码到循环中,以便您可以继续输入值。我还添加了一个if
语句,因此-1
不会用于平均值。您只需不断传递整数,否则n永远是输入的第一个值
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum = 0;
do {
System.out.println("Value is :" + n);
count++;
sum = sum + n;
n = sc.nextInt();
}while ( n != -1);
您需要在每次迭代或循环中重新定义n
。您需要将sum
和/或count
转换为double
,否则您将执行整数除法(将结果截断为整数)。