gpt4 book ai didi

Java:如何无限输入数字,输入负数时停止并计算平均值

转载 作者:行者123 更新时间:2023-12-01 11:11:13 26 4
gpt4 key购买 nike

我正在尝试编写一个 Java 程序,它接受可能无限数量的值 - 一旦用户输入负数,程序就会停止,计算所有输入数字的平均值(不包括负数)并打印出输入了多少个数字(再次强调,不是负数)以及平均值。

下面是我目前拥有的代码。当我尝试运行该程序时,它无法正确计算平均值,您必须输入几个连续的负数才能最终停止程序。

为了测试算术和程序的其余部分,我插入了一条语句,如果输入单词“负”而不是负数,该语句将关闭程序。什么时候做的,平均值和计数以及其他一切都像原来那样工作。本质上,当我尝试在负数后停止程序时,问题就开始出现。

我是一名初级程序员,这已经让我发疯了几个小时。任何帮助是极大的赞赏!

import java.util.*;
import java.lang.Math;
import java.io.IOException;
import java.io.InputStream;

public class Average
{
public static void main(String[] args)
{
Scanner numInput = new Scanner(System.in);

double avg = 0.0;
double count = 0.0;
double sum = 0.0;

System.out.println("Enter a series of numbers. Enter a negative number to quit.");

while (numInput.hasNextDouble())
{
double negNum = numInput.nextDouble();
if (negNum >= 0)
{
sum += numInput.nextDouble();
count++;
avg = sum/count;
}
else
{
System.out.println("You entered " + count + " numbers averaging " + avg + ".");
break;
}
}
}
}

最佳答案

您应该使用:sum+=negNum; 而不是 sum += numInput.nextDouble();

就像现在一样,您的程序读取一个数字,如果它不为负,它会读取另一个数字并将其添加到总和中。

此外,您应该在 else block 中仅计算一次平均值。

关于Java:如何无限输入数字,输入负数时停止并计算平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32345928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com