spoj średnia arytmetyczna

0

Zadanie ze spoja http://pl.spoj.com/problems/PP0604A/
Program świruje, pominąwszy złe wyniki, wypisuje ich za dużo. Nie mam pomysłu gdzie popełniłem błąd, proszę o pomoc.

https://ideone.com/18Z1zr

0

Zastosuj while(t--) i usuń t-- z końca pętli, analogicznie z n. Co do złych wyników, to liczby zmiennoprzecinkowe wymagają fabs(). Błąd jest gdzieś jeszcze ale nie widzę gdzie.

0

przenieś

new

powyżej pętli while(n).

(i kawałek reszty tej pętli też)

0

Poprawiłem wg wskazówek, teraz kod wygląda następująco.
https://ideone.com/rXTXhX
Wyniki fatalne. Dlaczego na wyjściu jest aż tyle danych? Powinny być 3 liczby.

1

while(n--) a potem uzywasz tego n wielokrotnie w petli... wez jakos sensownie nazwij te zmienne, to pomoze uniknac takich bledow

0

daj cout poza pętlę...

0

Zrobiłem porządek ze zmiennymi: https://ideone.com/U3ybR8

0

Za każdym razem wyświetlaj wszystkie kluczowe zmienne (tzw. "dupa debugging"). Wtedy zobaczysz co masz źle.

Czyli zamień:

            cout<<endl<<tab[nrnearest]<<endl;

na:

            cout<<endl<<"number: " << number << ", amount: " << amount << ", test: " << test << ", average: " << average << ", nrnearest: " << nrnearest << ", tab[nrnearest]: " << tab[nrnearest]<<endl;

Oczywiście lepiej by było użyć debugera, ale rozumiem że jeszcze nie potrafisz?

1

Użyj debuggera. Nie umiesz? Naucz się a dopiero potem wróć do programowania.

0

Faktycznie, dzięki debuggerowi poszukiwanie dziury jest znacznie łatwiejsze, dzięki za konstruktywną krytykę.
Kod po usunięciu błędów http://ideone.com/lG1ROT

1 użytkowników online, w tym zalogowanych: 0, gości: 1