Dronton2
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата:Зачем объявлять эту переменную? Она нигде не используется и не нужна. Цитата: double [] popal=new double[100]; | В этом массиве мы храним количество выбитых очков для каждого стрелка. Всего 40 стрелков. Почему размер массива = 100? Мы видим, что используются только первые 40 элементов. Нужно: new double[ 40 ] Что делает внутренний цикл? Вычисляет (в переменную result) количество попаданий первых i стрелков: перед началом цикла в переменной должно храниться значение 0. На первом шаге добавляем количество попаданий первого стрелка. На втором шаге добавляем в эту переменную количество попаданий второго стрелка и т.д. до i-того стрелка. Что делает внешний цикл? Он перебирает всех стрелков от второго до сорокового и для каждого стрелка: 1. Хранит в переменной i порядковый номер стрелка. (Значение этой переменной i мы используем во внутреннем цикле.) 2. Вызывает внутренний цикл, который вычисляет значение result, как сумму попаданий стрелков (от первого до i-того) 3. Делит значение result на i (получается среднее арифметическое для i-го стрелка) и сохраняет это значение в i-той ячейке массива popal 4. Печатает это значение В чём ошибка? У вас значение result обнуляется только один раз - перед началом первого цикла. В дальнейшем, её значение только увеличивается. А нужно, чтобы оно обнулялось перед началом каждого вычисления суммы попаданий i-того стрелка. Поэтому, передвиньте строку "в переменную result" чуть ниже. Кстати, если у вас есть отладчик, то запустите его по шагам, и посмотрите на каждом шаге, чему равны значения переменных i, j и result. Всё станет понятным, а жизнь - счастливой. |