Перед тем, как вы прочитаете мой вопрос: хочу сказать, что это бредовый пример и вопрос, но один из программистов который работает уже более 8 лет сказал мне: "не стесняйся задавать бредовые вопросы" ибо если ты не задаешь глупых вопросов то тебе либо ничего не понятно, либо ты и правда хочешь узнать почему это так работает, а почему то по-другому.
Вопрос знатокам
Сначала я решал задачу по примеру №1, затем узнал про count (который считает количество вводимых чисел) и решил задачу по примеру №2. Но в обоих примерах разные результаты (правильно только в примере №2).
Вопрос: Почему?
Пример №1:
public static void main(String[] args) throws Exception {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
double sum = 0;
while (true){
int n = Integer.parseInt(reader.readLine());
if(n == -1){
break;
}
sum = sum + n; //считаем сумму всех чисел
sum = sum / n; //тут вроде как оно делит на сумму n, а не на кол-во вводимых чисел
}
System.out.println(sum); //выводим делимую сумму
}
при вводе чисел
4
3
2
1
-1
Вывод на экран:
2.6666666666666665
Пример №2
public static void main(String[] args) throws Exception {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
double sum = 0;
int count = 0;
while (true){
int n = Integer.parseInt(reader.readLine());
if(n == -1){
break;
}
sum = sum + n; //считаем сумму всех чисел
count++; //увеличиваем кол-во вводимых чисел на 1
}
System.out.println(sum / count); //делим сумму чисел на кол-во вводимых чисел
}
при вводе чисел
4
3
2
1
-1
Вывод на экран:
2.5
Как видите результаты разные, в примере №1 результат больше на 0,1 от примера №2. Ведь по сути примеры аналогичны друг другу. Тот кто вник в это, буду рад объяснения, спасибо!