Ошибка в примере по вычислению среднего арифметического
В примере по вычислению среднего арифметического от 0 до 100 дан неверный код, который приводит к неверному результату.
Ср.арифметическое (1+2+3+...+100) / 100 = 50.5, а не 50.0, как в уроке (можете проверить ручками или он-лайн калькулятором).
Ошибка состоит в том, что при последнем проходе цикла в значении count = 100 после последнего суммирования count инкрементируется еще раз и на выходе из цикла его значение = 101.
Исправить это можно только отняв лишнюю единицу уже при вычислении итогового результата, потому как, меняя условие на строгое неравенство, мы получаем на выходе правильный count, но недосчитанную на последнее число 100 sum.
Ну или вводом дополнительного условия внутри цикла с break, но это лишний объем кода.
Есть еще варианты?
public class Loop {
public static void main(String[] args) {
int sum = 0;
int count = 1;
while (count <= 100) {
sum += count;
count++;
}
float result = sum / (float) (count - 1);
System.out.println(result);
}
}