我创建了一个程序,该程序将允许用户输入他们希望计算算术平均值的数量。该程序工作正常,但是我正试图阻止该程序接受负数。
我尝试过添加一个while循环,如下所示,但是这没有做任何事情,我不确定为什么。
Scanner inputLine = new Scanner(System.in);
int numbers, start, sum=0, armean;
int array[] = new int[50];
System.out.println("program to find the arithmetic mean (average) of a list of positive numbers ");
System.out.println("=======================");
System.out.println();
System.out.print("How many numbers do you want to Enter ? ");
numbers = inputLine.nextInt();
System.out.print("Enter " +numbers+ " Numbers : ");
while (numbers < 0){
System.out.println("Incorrect number entered");
System.out.print("Enter " +numbers+ " Numbers : ");
numbers = inputLine.nextInt();
}
for(start=0; start<numbers; start++) {
array[start] = inputLine.nextInt();
sum = sum + array[start];
}
armean = sum/numbers;
System.out.print("Arithmetic Mean = " +armean);
最佳答案
您的while循环在代码中的错误位置。
放在这里:
for(start=0; start<numbers; start++) {
int number;
do {
number = inputLine.nextInt();
} while (number < 0);
array[start] = number;
sum = sum + array[start];
}
另外,您根本不需要数组(实际上,如果用户输入的数字超过50,则会导致错误)
for(start=0; start<numbers; start++) {
int number;
do {
number = inputLine.nextInt();
} while (number < 0);
sum = sum + number;
}
如果您真的想保留数组,请使用
numbers
对其进行初始化:int array[] = new int[numbers];
关于java - 查找正数列表的算术平均值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35662493/