Когда я пытаюсь скомпилировать код, команда говорит, что у меня есть ошибка, где я помещаю 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 + int[i]; .. измените его на .. total = total + input[i]; , так как input — это имя переменной массива. и также измените свой цикл с for(i = 0; i < array.length; i++) на for(i = 0; i < input.length; i++)
Это решение работает для большинства массивов, но не для всех. Предположим, что одно из значений массива равно Integer.MAX_INT (или близко к нему). Сумма будет переполнена, и вы получите неправильный ответ.




Ваш входной параметр называется 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);
}
}
Используйте
total = total + input[i];Имя массива твой является входным, а не целым. То же самое относится и к циклу for