Java

时间:2019-05-31 15:52:01

标签: java

问题陈述

需要查找用户输入数字的算术平均值。

约束

  • 我们不能要求用户定义/共享用户计划输入的“ NUMBERS”个号码,即不能要求用户告诉他要输入多少个数字。
  • 如果用户输入-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的算术平均值

3 个答案:

答案 0 :(得分:2)

尝试一下:

    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不会在平均值中使用。

答案 1 :(得分:0)

您不时读取“ n”作为输入,那么n始终是第一个值,循环是无限的。

答案 2 :(得分:0)

您只需要保持传递整数,否则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);