package pl.codegym.task.task05.task0507;
/*
Średnia arytmetyczna
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws Exception {
//tutaj wpisz swój kod
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int sum = 0;
int n = 0;
while (true) {
int liczba = Integer.parseInt(reader.readLine());
sum = sum + liczba;
n++;
if (liczba == (-1)) {
n--;
double ar = sum/n;
System.out.println(ar);
break;
}
}
}
}
co jest nie tak?
Dyskutowane
Komentarze (2)
- Popularne
- Najnowsze
- Najstarsze
Musisz się zalogować, aby dodać komentarz
Karol Grzeszczak
7 stycznia, 20:28przydatny
w takim warunku nie wyjdzie przy wpisaniu drugiego przykładu gdzie wynik ma być 2.5 w Twoim kodzie wychodzi 2 po poprawce 2.25
czyli Twój kod wykonuje działanie 4 + 3 + 2 + 1 co daje 10 ale na tym nie kończy 10 - 1 = 9
odejmujesz od n
czyli wychodzi 9 / 4 = 2.25
stawiasz jeden warunek
to kończy pracę programu od razu gdy wykryje liczbę -1 wtedy masz pewność, że ona nigdy nie zostanie użyta w obliczeniach
po warunku dopiero wykonujesz obliczenia w Twoi przypadku najpierw dodasz -1 a dopiero program przestanie działać
cały Twój kod można skrócić do takiej formy
tak jak kolega niżej napisał dzielisz przez integer czyli liczby całe więc to i tak nie zadziała chociaż użyjesz double c = a / b
najlepiej zmienić na początku
+2
Thomas
7 stycznia, 13:02
integer division in line 20
+1