Напишите функцию, которая возвращает среднее значение массива

Когда я пытаюсь скомпилировать код, команда говорит, что у меня есть ошибка, где я помещаю total = total + int[i]; Это правильный способ сложить элементы массива вместе или есть лучший способ сделать это?

import java.util.Scanner;
import java.util.Arrays;

public class main{

    private static void findMean(int[] input){
            int total = 0;         
        for(i = 0; i < array.length; i++){


            total = total + int[i];

        } 
        mean = total/n;
        System.out.println(mean);
    }   


    public static void main(String[] args){
      Scanner reader = new Scanner(System.in);  // Reading from System.in
      System.out.println("How many numbers do you want");
      int n = reader.nextInt();
      int[] numbers;
      numbers = new int[n];


      for(int i = 0; i < n; i++){     
        System.out.println("Enter number " + i + 1 );
        numbers[i] = reader.nextInt();
            }

     findMean(numbers);

    }
}

Я хочу, чтобы код отображал среднее значение, вместо этого я получаю следующую ошибку:

main.java:11: error: illegal start of expression
            total = total + [i];
                            ^
main.java:11: error: not a statement
            total = total + [i];
                             ^
main.java:11: error: ';' expected
            total = total + [i];
                              ^

Используйте total = total + input[i]; Имя массива твой является входным, а не целым. То же самое относится и к циклу for

Nicholas Kurian 23.03.2019 19:06

Вам нужно прочитать о массивах; как вы их объявляете, как их инициализируете и как получить значение элемента массива.

MC Emperor 23.03.2019 19:07

Спасибо, ребята, это сработало, я все еще очень новичок

Nandha 23.03.2019 19:08

Проблема в total = total + int[i]; .. измените его на .. total = total + input[i]; , так как input — это имя переменной массива. и также измените свой цикл с for(i = 0; i < array.length; i++) на for(i = 0; i < input.length; i++)

VSB 23.03.2019 19:09

Это решение работает для большинства массивов, но не для всех. Предположим, что одно из значений массива равно Integer.MAX_INT (или близко к нему). Сумма будет переполнена, и вы получите неправильный ответ.

FredK 23.03.2019 19:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
79
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ваш входной параметр называется input, int[] — это просто тип.
Попробуйте с:

total = total + input[i];

Другим способом были бы потоки...

С наилучшими пожеланиями

Алекс

Исправлена ​​проблема с чтением элементов массива и обновлением общего значения.

import java.util.Scanner;
import java.util.Arrays;

public class main{

    private static void findMean(int[] input){
        int total = 0;         
        for(int i = 0; i < input.length; i++){

            total = total + input[i];

        } 
        double mean = total/n;
        System.out.println(mean);
    }   


    public static void main(String[] args){
        Scanner reader = new Scanner(System.in);  // Reading from System.in
        System.out.println("How many numbers do you want");
        int n = reader.nextInt();
        int[] numbers;
        numbers = new int[n];


        for(int i = 0; i < n; i++){     
            System.out.println("Enter number " + i + 1 );
            numbers[i] = reader.nextInt();
        }

        findMean(numbers);

    }
}

Другие вопросы по теме