java—无法获取数组的平均值

h43kikqp  于 2021-07-11  发布在  Java
关注(0)|答案(3)|浏览(294)

只给出了错误的答案而我却找不到原因?这只是代码的一部分,但其余部分是复制粘贴的,所以它做同样的事情。我试图调整它,并找到一个在线解决方案,但一切似乎都在秩序。可能计数器不正确,不能处理负数?答案总是107.19999999。

public class draft3 {
    public static void main (String []args) {

    /* Create arrays for each company*/ 
    int NL5755[] = new int[] {60, 70, -10, -12, 10};
//Assign a value of 0 to total
    double sum = 0;
    double average1=0;
{
        /*Use a counter. For i smaller than the*/ 
        /*value of the length of the array, add them to sum*/
    for(int i=0; i<NL5755.length; i++)
    {
        sum = sum + NL5755[i];

    average1 += sum / NL5755.length;
}
sz81bmfz

sz81bmfz1#

你没有正确使用括号。

public class draft3 {
    public static void main (String []args) {

    int NL5755[] = new int[] {60, 70, -10, -12, 10};
    double sum = 0;
    double average1=0;

    for(int i=0; i<NL5755.length; i++){
      sum = sum + NL5755[i];
    }
    average1 += sum / NL5755.length;
  }
}
ig9co6j1

ig9co6j12#

计算平均值 array of numbers :
首先你需要把所有的数字相加
把所有数字的和除以数字的计数。
注意:您的代码的问题是,您对循环的每次迭代都进行了平均:

int NL5755[] = new int[] { 60, 70, -10, -12, 10 };
double sum = 0;
double average1 = 0;
for (int i = 0; i < NL5755.length; i++) {
    sum = sum + NL5755[i];
}
average1 = sum / NL5755.length;
System.out.println(average1);
wrrgggsh

wrrgggsh3#

其他人提到了这样一个事实:你应该把平均数的计算移到 for 循环,如果要在求和之后计算平均值,则为true。但是,如果要计算 for 循环,可以使用在线算法(即“随走随走”)。那样的话,你就把你现在的 average1 符合:

average1 += (NL5755[i] - average1) / (i + 1);

相关问题