我试图获得用户输入数字的平均值。每当我输入数字时,输出总是 -
总和是6 多少个数字:4 平均值:2.0
需要while循环,遗憾的是不允许循环。我对Java很新,所以我的格式很草率。在我的代码中我的问题在哪里?
import java.util.Scanner;
public class LoopsEndingRemembering {
public static void main(String[] args) {
// program in this project exercises 36.1-36.5
// actually this is just one program that is split in many parts
Scanner reader = new Scanner(System.in);
int count = 0;
int sum = 0;
int endingVariable = -1;
int input = 0;
double average;
while (input >= endingVariable) {
System.out.println("Type numbers: ");
input = Integer.parseInt(reader.nextLine());
sum += count;
average = (double)sum / count;
count++;
if (input == endingVariable) {
System.out.println("Thank you and see you later!");
System.out.println("The sum is " + sum);
System.out.println("How many numbers: " + count);
System.out.println("Average: " + average);
break;
}
}
}
}
答案 0 :(得分:3)
这里有几个错误。
导致错误的主要原因是sum += count
。您可以添加显示用户数量的数字,而不是添加用户输入的内容。因此它总是会添加0 + 1 + 2 + 3等。
另一个问题是,一旦您更改了上述内容,就必须检查<{1}} 之前是否将输入添加到总和中。所以你必须首先写input == endingVariable
,然后计算它内部的平均值。否则,它会将您的if
视为要计算的数字序列的一部分。
如果您发现输入与-1
不同,则只需将输入添加到总和并增加计数。
所以:
endingVariable
时才将输入添加到总和中并递增计数器。答案 1 :(得分:0)
试试这个...
import java.util.Scanner;
public class LoopsEndingRemembering {
public static void main(String[] args) {
// program in this project exercises 36.1-36.5
// actually this is just one program that is split in many parts
Scanner reader = new Scanner(System.in);
int count = 0;
int sum = 0;
int endingVariable = -1;
int input = 0;
double average;
while (input >= endingVariable) {
System.out.println("Type numbers: ");
input = Integer.parseInt(reader.nextLine());
sum += input; // you were doing mistake here.
average = (double)sum / count;
count++;
if (input == endingVariable) {
System.out.println("Thank you and see you later!");
System.out.println("The sum is " + sum);
System.out.println("How many numbers: " + count);
System.out.println("Average: " + average);
break;
}
}
}
}
答案 2 :(得分:0)
您的代码存在两个大问题。首先,这一行:
sum += count;
这可能只是一个错字,但显然应该是:
sum += input;
其次,一旦你解决了这个问题,你就会注意到你的总和中包含了-1。你可能想要这样的东西:
System.out.println("Type numbers: ");
input = Integer.parseInt(reader.nextLine());
if (input == endingVariable) {
average = (double) sum / count;
System.out.println("Thank you and see you later!");
System.out.println("The sum is " + sum);
System.out.println("How many numbers: " + count);
System.out.println("Average: " + average);
break;
} else {
sum += input;
count++;
}
答案 3 :(得分:0)
感谢您详细解释。它现在工作正常,我所要做的就是你所说的是改变输入,并移动总和+ =输入并计算其他项目中的最终项目。我正在努力弄清楚为什么要包括我的-1