gpt4 book ai didi

java - java中数组的平均数字不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:38 26 4
gpt4 key购买 nike

我似乎无法让这段代码正确地平均数字。当我输入 5 个 1 位数的数字(例如 9、6、2 等)时,它会给我错误的结果,例如输入五个 2,它会给我答案“0.0”。即使输入两位或更多位数字时,也会错误地四舍五入数字。就像它甚至不承认它是一个替身一样。我认为我错过了一些非常明显的东西,有一段时间没有编程了,所以不会感到惊讶。

这是代码:

    import java.util.*;

public class LittleBoxes2
{
public static void main (String[] args)
{
Scanner input = new Scanner (System.in);
int[] num;
double avg;
String cont = "Y";

while(cont.equals("Y") || cont.equals("y"))
{
num = new int [5];

for(int i = 1; i <= 5; i++)
{
System.out.println("Enter number " + i + ".");
num[i - 1] = input.nextInt();
}

avg = num[0] / 5 + num[1] / 5 + num[2] / 5 + num[3] / 5 + num[4] / 5;

System.out.println("The average number is: " + avg + ".");

System.out.println("Do you want to continue? (Y/N)");
input.nextLine();
cont = input.nextLine();
}
}
}

最佳答案

/的两个操作数都是整数时,除法为整数除法。你有:

avg = num[0] / 5 + num[1] / 5 + num[2] / 5 + num[3] / 5 + num[4] / 5;

这意味着,例如,8/5 的计算结果为 1,2/5 的计算结果为 0。对于您的五个 2 的示例,其计算结果为:

= 2 / 5 + 2 / 5 + 2 / 5 + 2 / 5 + 2 / 5
= 0 + 0 + 0 + 0 + 0
= 0

你想要,例如:

avg = num[0] / 5.0 + num[1] / 5.0 + num[2] / 5.0 + num[3] / 5.0 + num[4] / 5.0;

这样,一个操作数是一个 double,因此 num[n] 个整数操作数被提升为 double,除法是浮点除法,结果是一个 double

关于java - java中数组的平均数字不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26833346/

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