打印数组的总和

时间:2016-10-04 03:12:58

标签: java arrays sum println

我正在尝试创建一个函数sum,然后在main中调用它,但是我遇到了编译时错误,我不明白为什么这是错误的。

class FindSum {
    int sum(int[] arr) {
        int sum = 0; // O(1)
        for (int i = 0; i < arr.length; i++) { // n times
             sum += arr[i]; // O(1)
        }
        return sum; // O(1)
    }

    // Driver program to test above functions
    public static void main(String[] args) {
        int arr[] = new int[]{5, 5, 10, 100, 10, 5};
        System.out.println(sum(arr));
    }
}

2 个答案:

答案 0 :(得分:2)

您正在从静态方法调用非静态方法。您可以将sum更改为静态,如下所示:

    public static int sum(int[] arr) {

或在main函数中实例化一个新对象:

public int sum(int[] arr) {
    int sum = 0; // O(1)
    for (int i = 0; i < arr.length; i++) { // n times
         sum += arr[i]; // O(1)
    }
    return sum; // O(1)
}

// Driver program to test above functions
public static void main(String[] args) {
    int arr[] = new int[]{5, 5, 10, 100, 10, 5};
    FindSum instance = new FindSum();
    System.out.println(instance.sum(arr));
}

答案 1 :(得分:1)

方法sum必须是静态的才能在main方法中调用。