我对数组很新,我正在尝试创建一个计算5个数字平均值的简单程序。但是,当计算平均值时,它的小数点始终为0而不是它应该是什么,但我不确定为什么.. 例如,如果我键入4,4,4,4,3,则显示3.0作为平均值而不是3.8。请帮忙!
int[] boxes = new int[5];
for (int i = 1 ; i <= 5 ; i++)
{
System.out.print("Enter number " + i + " > ");
int n = Integer.parseInt(kb.nextLine());
boxes[i-1] = n;
}
double mean = ( boxes[0] + boxes[1] + boxes[2] + boxes[3] + boxes[4] ) / 5;
System.out.println("The average of those five numbers is: " + mean);
谢谢!! :)
答案 0 :(得分:1)
这是因为操作是用整数完成的,将你的5改为5.0
答案 1 :(得分:0)
我无法回答你的具体细节,但在java中有一个叫做类型转换的巨大话题。我想,你看了。这对你来说是一个很好的解决方案。让我想起过去:)
答案 2 :(得分:0)
快速修复:更改5 -> 5.0D
。
为什么呢?让我们看一下分割过程的更多细节:
( boxes[0] + boxes[1] + boxes[2] + boxes[3] + boxes[4] )
,结果 - &gt; int
。sum(int type) / 5(int type)
=结果int type
3.8 - &gt; 3。int -> double
。这就是为什么你得到你所看到的。
答案 3 :(得分:0)
解决方案1 : - 您可以使用5.0而不是5来进行双重划分。就像:
double mean = ( boxes[0] + boxes[1] + boxes[2] + boxes[3] + boxes[4] ) / 5.0;
解决方案2 : - 你可以使用你的总和的双重投射:
double mean = (double)( boxes[0] + boxes[1] + boxes[2] + boxes[3] + boxes[4] ) / 5;
改善答案:
您可以使用int n=kb.nextInt();
代替int n = Integer.parseInt(kb.nextLine());
您可以像for
循环计算总和:
int[] boxes = new int[5];
int sum=0;
for (int i = 1 ; i <= 5 ; i++)
{
System.out.print("Enter number " + i + " > ");
int n=kb.nextInt();
boxes[i-1] = n;
sum +=boxes[i-1];
}
double mean = sum / 5.0;
System.out.println("The average of those five numbers is: " + mean);