Java 如何计算从控制台读取的整数序列的平均值?
为了计算用户输入的数字的平均值,我的代码中缺少了什么Java 如何计算从控制台读取的整数序列的平均值?,java,eclipse,average,Java,Eclipse,Average,为了计算用户输入的数字的平均值,我的代码中缺少了什么 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n; float average; do { System.out.print("Enter a number: "); n = scanner.nextInt(); System.out.p
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n;
float average;
do {
System.out.print("Enter a number: ");
n = scanner.nextInt();
System.out.println("Your number is " + n);
} while (n != 0);
if (n == 0) {
System.out.println("The average is : " + n);
}
scanner.close();
}
}
当用户输入“0”时,程序应该计算用户输入的数字的平均值,这就是为什么我写了“while(n!=0)”。您应该这样做: 注意,当你还有一个数字(0)时,你必须考虑通过移除它来计算平均值,因为你需要0来完成这个程序。 公共类测试{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n;
double average = 0;
int qtdNums = 0;
do {
System.out.print("Enter a number: ");
n = scanner.nextInt();
System.out.println("Your number is " + n);
average = average + n;
qtdNums++;
} while (n != 0);
if (n == 0) {
System.out.println("The average is : " + average / (qtdNums - 1));
}
scanner.close();
}
}
您实际上并没有使用正在读取的数字。一个好的编辑器会在您运行它之前告诉您这一点。我会研究如何获取IDE。您会希望执行类似于所建议的操作。我会说,可能最好将数字添加为整数,然后稍后再强制转换,这样您就不会丢失浮点运算的准确性ing point additions,在某些情况下会给您带来很多痛苦(但在这里您可能很好)。以下是我建议的代码,根据jhenrique的答案修改:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n;
int sum = 0;
int count = 0;
do {
System.out.print("Enter a number: ");
n = scanner.nextInt();
System.out.println("Your number is " + n);
sum += n;
count++;
} while (n != 0);
System.out.println("The average is : " + ((double) sum) / (count - 1));
scanner.close();
}
double
类似于float
,但更准确。在循环中,我将每个读取的数字加在sum
上,然后除以最后读取的内容数,得到平均值。谢谢你的帮助,它工作正常!但我不太明白为什么qtdNums-1?是0-1?以及qtdNums++。你能解释一下吗请这么快告诉我:)?你考虑的是所有数字的平均值。假设用户输入5个数字加上要停止的0,那么你总共有6个,但你只需要5个来计算平均值。这就是为什么你必须删除1@Larry见我的导出答案(我给了杰恩里克学分)是的,我明白了,你的两个代码都很好用,但是你的代码更容易理解!无论如何,我感谢你的帮助和很好的解释!!