问题陈述
需要查找用户输入数字的算术平均值。
约束
代码
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的算术平均值
答案 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);