我创建了一个程序,允许用户输入他们希望计算算术平均数的数量。该程序工作正常,但我试图阻止程序接受负数。 我已经尝试添加一个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);
答案 0 :(得分:1)
您的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];
答案 1 :(得分:0)
使用这些方案完成逻辑:
执行此操作时,您应该会看到问题。 (问题 - 有一对。)当你到达每一行时,一定要查看每个变量的值。
答案 2 :(得分:0)
你循环遍历你的数组,但这根本不受你的while循环的影响,而是影响了数字。
这应该有效:
for(start=0; start<numbers; start++)
{
array[start] = inputLine.nextInt();
if (!array[start]<0) {
sum = sum + array[start];
}
}