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
,否则您将执行整数除法(将结果截断为整数)。