Начал изучать java. Получил такое задание "Найти сумму всех четных и сумму нечетных элементов массива". В итоге написал этот код. Но IDEA выдает ошибку "Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2". Не могу въехать почему и как исправить. Кроме этого, числа которые должны попадать в динамический массив even попадают в odd и наоборот. Надеюсь, кто то откликнется :)
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class task7 {
public static void main(String[] args) {
int[] a;
Scanner z = new Scanner(System.in);
System.out.println("Enter the number of elements in the array");
int n = z.nextInt();
a = new int[n];
for (int i = 0; i <= (n - 1); i++) { //Принимаем все числа массива
Scanner x = new Scanner(System.in);
System.out.println("Enter" + " " + i + " " + "number of the array");
int b = x.nextInt();
a[i] = b;
}
List<Integer> even = new ArrayList<Integer>();
List<Integer> odd = new ArrayList<Integer>();
for(int i = 0; i< n; i++){
if (a[i]%2==0) {
even.add(i);
}
else {
odd.add(i);
}
}
int sumEven = 0;
int sumOdd = 0;
for (int i = 0; i < n; i++){
sumEven +=odd.get(i);
}
for (int i = 0; i < n; i++){
sumOdd+=even.get(i);
}
System.out.println("Array of even numbers is: " + even);
System.out.println("The sum of even numbers is " + sumEven);
System.out.println("Array of odd numbers is: " + odd);
System.out.println("The sum of odd numbers is " + sumOdd);
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("Enter the number of elements in the array");
int command = s.nextInt();
int numbers[] = new int[command];
for (int i = 0; i < numbers.length; i++) { //Принимаем все числа массива
System.out.println("Enter" + " " + i + " " + "number of the array");
numbers[i] = s.nextInt();
}
List<Integer> even = new ArrayList<Integer>();
List<Integer> odd = new ArrayList<Integer>();
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 == 0) {
even.add(numbers[i]);
} else {
odd.add(numbers[i]);
}
}
int sumEven = 0;
int sumOdd = 0;
for (int i = 0; i < even.size(); i++) {
sumEven += even.get(i);
}
for (int i = 0; i < odd.size(); i++) {
sumOdd += odd.get(i);
}
System.out.println("Array of even numbers is: " + even);
System.out.println("The sum of even numbers is " + sumEven);
System.out.println("Array of odd numbers is: " + odd);
System.out.println("The sum of odd numbers is " + sumOdd);
}
}
Не надо обявлять 2 сканнера, один можно использовать везде в классе. Выучи Forech loop, он поможет в итерации массивов (я сам не использовал чтобы тебе был понятен код). И я бы посоветовал давать переменным логичные имена (а не "a, b, n, x и тд.), чтобы ты сам и другой человек не терялся в коде. Если будут вопросы по моему коду задавай, не стесняйся.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
привет всем у меня такая проблема, пишу свой первый проект на java (Spring Boot), а именно пишу магазин одежды и мне надо чтобы в графике показывало...
Как получить XML-строку, если она сгенерирована в Document? Требуется именно String, а не вывод в файл