spoj średnia arytmetyczna

spoj średnia arytmetyczna
thebananek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
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

SI
  • Rejestracja: dni
  • Ostatnio: dni
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.

vpiotr
  • Rejestracja: dni
  • Ostatnio: dni
0

przenieś

Kopiuj
new

powyżej pętli while(n).

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

thebananek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
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.

katelx
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Hong Kong
1

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

vpiotr
  • Rejestracja: dni
  • Ostatnio: dni
0

daj cout poza pętlę...

thebananek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
0

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

vpiotr
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Czyli zamień:

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

na:

Kopiuj
            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?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

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

thebananek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.