-3

我试图让这个程序用数组 {1,2} 调用函数 arrayAvg 并返回平均值的两倍(这将是 1.5)。

这就是我的代码目前的样子。有人知道我哪里出错了吗?:X

import java.util.*;

public class Main
{
    public static double arrayAvg(int[] array){

        int total = 0;
        int count = 1;
        double average = 0.0;

        for(int item : array){
            total=total+item;count=count+1;
        }
        double dTotal = (double)total;
        double dCount = (double)count;
        average = (dTotal/dCount);
        return average;
    }

    public static void main(String args[]){

        int[] input = {1,2};
        double result = arrayAvg(input);
        System.out.println(result);
    }
}
4

4 回答 4

2

将 count初始化为 0 而不是 1

于 2012-12-11T05:41:01.687 回答
1

为什么需要计数?你基本上需要数组中的值来划分它。只需使用 arry.length,这将返回数组中元素的数量并将其用于除法

int len = array.length;
double dTotal = (double) total;
double dCount = (double) len;
average = (dTotal / dCount);
return average;
于 2012-12-11T06:15:59.303 回答
1

你的判断逻辑count是错误的。它应该从 0 而不是 1 开始。

此外,您可以简单地获取数组长度。

于 2012-12-11T05:41:12.437 回答
0

实际上你的逻辑有问题,你已经初始化了

int count = 1;

这是错误的,您应该使用 0 初始化该变量,如下所示

int count = 0;

下面是修改后的代码

public class Main {
    public static double arrayAvg(int[] array) {
        int total = 0;
        int count = 0;
        double average = 0.0;
        for (int item : array) {
            total = total + item;
            count = count + 1;
        }
        double dTotal = (double) total;
        double dCount = (double) count;
        average = (dTotal / dCount);
        return average;
    }

    public static void main(String args[]) {
        int[] input = { 1, 2 };
        double result = arrayAvg(input);
        System.out.println(result);
    }
}

输出

1.5
于 2012-12-11T05:57:35.680 回答