• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Challenge #2: Pani Agnieszka, nauczycielka z powołania

+64 głosów
4,344 wizyt
pytanie zadane 18 kwietnia 2015 w Nasze poradniki przez Mirosław Zelent Nałogowiec (25,970 p.)

Challenge #2 - Ponownie napisz jak najkrótszy kod w C++

Pani Agnieszka jest nauczycielką z powołania, pracuje w miejskim gimnazjum w krainie Bajtolandii. Co roku pani Agnieszka dokonuje podsumowania osiągnięć swoich uczniów, tak aby wyłonić najlepszego i najgorszego podopiecznego oraz obliczyć średni wynik całej klasy. Najlepszy uczeń otrzymuje wówczas nagrodę książkową, zaś ten nasłabszy za karę musi uczęszczać przez miesiąc wakacji na dodatkowe korepetycje.

Pani Agnieszka poprosiła Ciebie o sporządzenie programu komputerowego, który na podstawie ocen zdobytych przez uczniów wyznaczy najlepszego i najsłabszego ucznia klasy oraz obliczy średni wynik roczny wszystkich uczniów.

W krainie Bajtolandii uczniowie mają na koniec roku zawsze pięć ocen cząstkowych, ponadto nigdy nie zdarza się tak, żeby dwóch uczniów osiągnęło tę samą średnią końcoworoczną - nigdy więc nie dochodzi do remisów. Imiona dzieci są również zawsze niepowtarzalne i nie zawierają polskich znaków. 

Oceny nie są liczbami całkowitymi, np. dostateczny minus to 2.75 a dobry plus to 4.5.

Wejście: 

Najpierw liczba liczba uczniów w klasie pani Agnieszki (co roku może być przecież inna) oznaczona jako t (z przedziału 1..50). Następnie dla każdego testu imię ucznia oraz pięć uzyskanych przez niego ocen cząstkowych oddzielonych spacjami.

Wyjście: 

Imię najlepszego ucznia, następnie średnia jaką uzyskał, po czym imię nasłabszego ucznia, jego średnia i na końcu średnia roczna całej klasy.

Przykładowy zestaw danych:

Wejście:

4
Janek 3.5 6 1 1.5 2.75
Basia 3.75 1.75 1.75 4.5 5
Karol 1.75 1.5 2.5 2.5 1
Zosia 3 3 2.5 3.75 6

Wyjście:

Zosia
3.65
Karol
1.85
2.95

Sprawdź się! Rozwiązania można przesyłać poniżej:

http://scarky.com/widget/getiframe/PRTO5AQO/width=550&height=500

Nie ma limitu czasowego, challenge pozostaje otwarty dla potomnych :)

Moja rada: kombinuj samodzielnie, nie porównuj się do innych. Staraj się raczej poprawić własny rezultat - podążaj drogą swojego mistrzostwa, potraktuj to zadanie jako challenge dla sprawdzenia swojej determinacji, pomysłowości, umiejętności szukania informacji w sieci - to nie wyścig szczurów, chodzi głównie o rozwój umysłu i cech charakteru. Challenge są fajne właśnie dlatego, że można z tymi problemami powalczyć klika dni, przespać się z nimi, wpaść na rozwiązanie w zupełnie niespodziewanym momencie - to niesamowicie rozwija cierpliwość i zaprawia w bojach :) Code ON! 

Pamiętaj też, że wejście można wkleić w konsolę, zamiast przepisywać! Ctrl+C wejścia, a potem klik na lewy górny róg okna i tam:

Poprzednie challenge:

#1: http://forum.miroslawzelent.pl/5763/challenge-%231-stworz-najkrotszy-kod-zrodlowy-w-c-dodajacy-siedem-liczb-calkowitych?show=5763#q5763

16 odpowiedzi

+11 głosów
odpowiedź 19 kwietnia 2015 przez Ehlert Szeryf (85,460 p.)

Bajtolandia. Wyczuwam olimpiadę informatyczną. laugh

+5 głosów
odpowiedź 18 kwietnia 2015 przez MrWeb Stary wyjadacz (10,310 p.)
Może w tym wyzwaniu uzyskam lepszy wynik ;) A co z najlepszymi kodami poprzedniego wyzwania?
+4 głosów
odpowiedź 19 kwietnia 2015 przez krecik1334 Maniak (58,620 p.)

Przydatna sugestia z tym wklejaniem tekstu do konsoli, zwykle przeklepywałem testy lub testowałem na IDEone gdzie można wklejać.

+4 głosów
odpowiedź 19 kwietnia 2015 przez Arsetus Gaduła (4,760 p.)
edycja 2 maja 2015 przez Arsetus

59 znaków, dziękuję.

Nie ma kontroli błędów.

#edit: Sprawdziłem również, że test jest sprawdzany tylko dla 3 uczniów, więc nie potrzeba ustawiać większych tablic. Może komuś przyda się ta informacja.

Pozdrawiam.

komentarz 19 kwietnia 2015 przez Mirosław Zelent Nałogowiec (25,970 p.)
Tak, chodzi o rozwiązanie problemu, przypadki błędnego wejścia w takich zadaniach pomija się. Pozdrawiam
komentarz 21 kwietnia 2015 przez dariusz Obywatel (1,360 p.)
Przydała się ;-) bez alokacji dynamicznej zawsze kilka znaków mniej xd
+4 głosów
odpowiedź 19 kwietnia 2015 przez HaKIM Maniak (69,720 p.)
A ja nadal czekam na challenge z PHP, albo Html'a. Na przykład napisz ładną stronę, z jak najmniejszą ilością kodu. : p
+3 głosów
odpowiedź 18 kwietnia 2015 przez Eryk Andrzejewski Szeryf (86,950 p.)
Super pomysł :) Ten challenge będzie już trudniejszy :) Ale założę się, że jeszcze lepszy od poprzedniego :) Pozdrawiam :)
+3 głosów
odpowiedź 18 kwietnia 2015 przez Dawid Sobieszczuk Gaduła (4,700 p.)
Będzie ciekawie. Zaraz coś napisze. Jestem ciekawy jak pierwsza wersja mojego kodu będzie się różnić od ostatniej.
+3 głosów
odpowiedź 19 kwietnia 2015 przez Dragonet.17 Pasjonat (19,580 p.)
W takim razie jaki rodzaj funkcji wyłoni najlepszego znas :D
Hmm, zapewne ta , która może sprawdzić, kto z nas najabardziej rozwinął się podczas rozwiązywania tego challenge'u zwyciężając bitwę nie tylko z postawionym zadaniem ale i samym ze sobą :)
+3 głosów
odpowiedź 19 kwietnia 2015 przez Eerie Mądrala (7,100 p.)
Czy będzie można zobaczyć rozwiązania nadesłane przez innych userów?
komentarz 19 kwietnia 2015 przez Mirosław Zelent Nałogowiec (25,970 p.)
Zasadniczo kod jest dziełem autora, więc tylko on decyduje - większość osób nie pokazuje swoich kodów (chyba że napotkają problemy), bo nie chce psuć zabawy innym :)
komentarz 19 kwietnia 2015 przez Eerie Mądrala (7,100 p.)
Chodzi mi głównie o to, że jak się już zabawa skończy, to chciałbym zobaczyć na co userzy wpadli ciekawego.
komentarz 19 kwietnia 2015 przez Ukis Gaduła (4,620 p.)
Ale ta zabawa nie ma ograniczonego czasu, więc teoretycznie się nie kończy. ;)
+3 głosów
odpowiedź 19 kwietnia 2015 przez Oliwier Wolf Użytkownik (590 p.)
Udało się, o czym mówi ten "score" ?
komentarz 19 kwietnia 2015 przez Dawid Sobieszczuk Gaduła (4,700 p.)
O ilości znaków.
+1 głos
odpowiedź 21 kwietnia 2015 przez dixtel Użytkownik (670 p.)
Zadanie bardzo proste
+1 głos
odpowiedź 23 kwietnia 2015 przez falauthy Stary wyjadacz (11,570 p.)

Mógłby ktoś nakierować mnie dlaczego jak mam podaną liczbę uczniów np. 4, to mi pętle powtarza tylko 2 razy, a jak podam np. 8 uczniów, to mi powtarza 3 razy?

 

 for (int i = 1; i <= uczniowie; i++) //przy int i = 0 to samo
        {
            cin >> imie;
            cin >> oceny;
        }

 

komentarz 23 kwietnia 2015 przez dixtel Użytkownik (670 p.)

Ja bym zrobił tak,że i to uczniowie i bym odejmował aż do 0

komentarz 23 kwietnia 2015 przez falauthy Stary wyjadacz (11,570 p.)
Wiesz co, chciałem podobnie zrobić na pętli while i to samo miałem.
komentarz 27 kwietnia 2015 przez Arsetus Gaduła (4,760 p.)

Dlatego, że w jednym obiegu pętli pobiera ci imię ucznia i ocenę, nie oceny. Po spacji próbuje Ci program przejść do kolejnego wejścia, np. Janek 3.5 6 1 1.5 2.75
Basia 3.75 1.75 1.75 4.5 5
takie wejście będzie wczytywane tak: w nawiasach kolejne przejścia pętli  (Janek 3.5)  (6 1)  (1.5 2.75)  (Basia 3.75)  (1.75 1.75)  (4.5 5), czyli 6 przejśc pętli a wpisuje Ci tylko imiona i oceny 2 uczniów. Zrób zagnieżdżoną pętlę pobierającą ocenę 5 razy (najlepiej do tablicy)

komentarz 27 kwietnia 2015 przez falauthy Stary wyjadacz (11,570 p.)
Dzięki. :) Późnej będę kombinował. :)
komentarz 2 maja 2015 przez falauthy Stary wyjadacz (11,570 p.)
Trochę czasu minęło, ale ogarnąlem z tym wpisywaniem. Teraz głowię się z sumowaniem liczb w pętli. :p
+1 głos
odpowiedź 26 kwietnia 2015 przez skav3n Gaduła (3,080 p.)

PYTHON: 234 znaki (16 wierszy) smiley

komentarz 27 kwietnia 2015 przez Arsetus Gaduła (4,760 p.)
Usuń znaki nowej lini to spadnie Ci jeszcze parę znaków.
komentarz 27 kwietnia 2015 przez skav3n Gaduła (3,080 p.)
Nie wiem za bardzo o co chodzi, ale nie mam znaków które kończą linię.
komentarz 27 kwietnia 2015 przez Arsetus Gaduła (4,760 p.)
Po prostu zrób to w 2 liniach: 1 linia to implementacja biblioteki, a 2 linia to cały kod. Wytłumaczę to tak, jeśli wciśniesz ENTER i przejdziesz do nowego wiersza, to już jest zaliczane jako jeden znak.
komentarz 27 kwietnia 2015 przez skav3n Gaduła (3,080 p.)
Ale tak jest czytelniej, zresztą w pythonie nie zapiszę kodu w jednej linijce.
komentarz 27 kwietnia 2015 przez Arsetus Gaduła (4,760 p.)
W tych wyzwaniach liczy się jak najkrótszy kod, możesz usunąć te niepotrzebne znaki tylko na czas wysłania kodu.
+1 głos
odpowiedź 29 kwietnia 2015 przez andrzejugdziejestes Początkujący (390 p.)
Z czego może wynikać błąd, że na IDEONE mój kod jest liczony poprawnie a w moim kompilatorze wyskakują jakieś dziwne liczby?
komentarz 29 kwietnia 2015 przez Mirosław Zelent Nałogowiec (25,970 p.)
Może to po prostu inna wersja gcc.
komentarz 29 kwietnia 2015 przez andrzejugdziejestes Początkujący (390 p.)
A gdzie mógłbym znaleźć instrukcje jak zainstalować ten 4.9.2 do CodeBlocks? Bo szukam i szukam i nic z tego nie wynika.
komentarz 29 kwietnia 2015 przez andrzejugdziejestes Początkujący (390 p.)
Niestety zmiana nic nie pomogła...Dalej liczby z kosmu ehh w każdym razie dziękuję za pomoc mam nowsze gcc :)
0 głosów
odpowiedź 18 maja 2015 przez MisterCodePL Nowicjusz (220 p.)

Jak narazie mam 740 znaków, ale jako, że to beznajdziejny wynik jeszcze nad nim popracuje.angel

0 głosów
odpowiedź 27 maja 2015 przez taranti Nowicjusz (200 p.)
edycja 28 maja 2015 przez taranti

Kod dziala, lecz: Result: wrong answer. Czy ktos moze mi powiedziec co zrobilem zle??

poprawilem, udalo sie, kod wykasowalem z forum (mam nadzieje ze nikomu nie zepsulem zabawy), zamknalem sie w 370 znakach:)

Jak na 1,5 miesiaca kodowania to chyba niezly wynik:)

 

Podobne pytania

+112 głosów
38 odpowiedzi 8,090 wizyt
+17 głosów
4 odpowiedzi 1,631 wizyt
0 głosów
3 odpowiedzi 2,607 wizyt
pytanie zadane 14 listopada 2015 w C i C++ przez konrad99 Gaduła (3,220 p.)
...