求正数列表的算术平均值
Finding the arithmetic mean of a list of positive numbers
我创建了一个程序,允许用户输入他们希望计算算术平均值的数字数量。该程序运行良好,但我试图阻止该程序接受负数。
我已经尝试添加一个 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];
在这些场景中完成逻辑:
- 您输入几个负数,然后输入一些正数
- 您输入一个正数,几个负数,然后输入几个正数。
当你这样做时你应该看到问题。 (问题 - 有几个。)当你到达每一行时一定要查看每个变量的值。
你遍历了你的数组,但这根本没有受到你的 while 循环的影响,你反而影响了数字。
这应该有效:
for(start=0; start<numbers; start++)
{
array[start] = inputLine.nextInt();
if (!array[start]<0) {
sum = sum + array[start];
}
}
我创建了一个程序,允许用户输入他们希望计算算术平均值的数字数量。该程序运行良好,但我试图阻止该程序接受负数。 我已经尝试添加一个 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];
在这些场景中完成逻辑:
- 您输入几个负数,然后输入一些正数
- 您输入一个正数,几个负数,然后输入几个正数。
当你这样做时你应该看到问题。 (问题 - 有几个。)当你到达每一行时一定要查看每个变量的值。
你遍历了你的数组,但这根本没有受到你的 while 循环的影响,你反而影响了数字。
这应该有效:
for(start=0; start<numbers; start++)
{
array[start] = inputLine.nextInt();
if (!array[start]<0) {
sum = sum + array[start];
}
}