package com.javarush.task.task07.task0706;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] countResidents = new int[15];
for (int i = 0; i < 15; i++) {
countResidents[i] = Integer.parseInt(reader.readLine());
}
int even = 0;
int odd = 0;
for (int i = 0; i < 15; i++) {
if (i % 2 == 0) {
even += countResidents[i];
} else {
odd += countResidents[i];
}
}
if (even > odd) {
System.out.println("В домах с четными номерами проживает больше жителей.");
} else {
System.out.println("В домах с нечетными номерами проживает больше жителей.");
}
}
}
Когда решил эту задачу(сам), решил посмотреть решение помощника, там был такой же код, как и у меня, но вот незадача, я не понял, как условие берёт числа из массива, то-есть вот эту строку
if(i % 2 == 0)
, я не понимал как оно узнаёт о числах в массиве до его инициализации, ведь " i " вообще никак не связывается до условия, оказалось, я не зря загонялся)))
решил проверить в NetBeans, а это решение реально не рабочее, в итоге посидел минут пять и понял как это можно решить чтобы всё работало и всё стало на свои места, вот моё решение:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Massiv6_GdeBolsheZhiteley {
public static void main(String[] args) throws IOException {
BufferedReader haha = new BufferedReader(new InputStreamReader(System.in));
int[] gopa = new int[15];
for (int b = 0; b < 15; b++) {
gopa[b] = Integer.parseInt(haha.readLine());
}
int left = 0;
int right = 0;
for (int i = 0; i < 15; i++) {
if (gopa[i] % 2 == 0) {
left += gopa[i];
} else {
right += gopa[i];
}
}
if (left > right) {
System.out.println("В домах с четными номерами проживает больше жителей.");
} else {
System.out.println("В домах с нечетными номерами проживает больше жителей.");
}
}
}
Вот этот код полностью рабочий и логика в порядке))
i