• 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,285 wizyt
pytanie zadane 18 kwietnia 2015 w Nasze poradniki przez użytkownika Mirosław Zelent Nałogowiec (25,450 punkty)

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://forum.pasja-informatyki.pl/challenges/challenge2.html

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 użytkownika Ehlert Maniak (73,350 punkty)

Bajtolandia. Wyczuwam olimpiadę informatyczną. laugh

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

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 użytkownika Arsetus Gaduła (4,760 punkty)
edycja 2 maja 2015 przez użytkownika 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 użytkownika Mirosław Zelent Nałogowiec (25,450 punkty)
Tak, chodzi o rozwiązanie problemu, przypadki błędnego wejścia w takich zadaniach pomija się. Pozdrawiam
komentarz 21 kwietnia 2015 przez użytkownika dariusz Obywatel (1,360 punkty)
Przydała się ;-) bez alokacji dynamicznej zawsze kilka znaków mniej xd
+4 głosów
odpowiedź 19 kwietnia 2015 przez użytkownika HaKIM Maniak (67,400 punkty)
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 użytkownika Eryk Andrzejewski Szeryf (79,310 punkty)
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 użytkownika Dawid Sobieszczuk Gaduła (4,700 punkty)
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 użytkownika Dragonet.17 Pasjonat (19,580 punkty)
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 użytkownika Eerie Mądrala (7,080 punkty)
Czy będzie można zobaczyć rozwiązania nadesłane przez innych userów?
komentarz 19 kwietnia 2015 przez użytkownika Mirosław Zelent Nałogowiec (25,450 punkty)
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 użytkownika Eerie Mądrala (7,080 punkty)
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 użytkownika Ukis Gaduła (4,620 punkty)
Ale ta zabawa nie ma ograniczonego czasu, więc teoretycznie się nie kończy. ;)
+3 głosów
odpowiedź 19 kwietnia 2015 przez użytkownika Oliwier Wolf Użytkownik (590 punkty)
Udało się, o czym mówi ten "score" ?
komentarz 19 kwietnia 2015 przez użytkownika Dawid Sobieszczuk Gaduła (4,700 punkty)
O ilości znaków.
+1 głos
odpowiedź 21 kwietnia 2015 przez użytkownika dixtel Użytkownik (670 punkty)
Zadanie bardzo proste
+1 głos
odpowiedź 23 kwietnia 2015 przez użytkownika falauthy Stary wyjadacz (11,540 punkty)

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 użytkownika dixtel Użytkownik (670 punkty)

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

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

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 użytkownika falauthy Stary wyjadacz (11,540 punkty)
Dzięki. :) Późnej będę kombinował. :)
komentarz 2 maja 2015 przez użytkownika falauthy Stary wyjadacz (11,540 punkty)
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 użytkownika skav3n Bywalec (2,640 punkty)

PYTHON: 234 znaki (16 wierszy) smiley

komentarz 27 kwietnia 2015 przez użytkownika Arsetus Gaduła (4,760 punkty)
Usuń znaki nowej lini to spadnie Ci jeszcze parę znaków.
komentarz 27 kwietnia 2015 przez użytkownika skav3n Bywalec (2,640 punkty)
Nie wiem za bardzo o co chodzi, ale nie mam znaków które kończą linię.
komentarz 27 kwietnia 2015 przez użytkownika Arsetus Gaduła (4,760 punkty)
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 użytkownika skav3n Bywalec (2,640 punkty)
Ale tak jest czytelniej, zresztą w pythonie nie zapiszę kodu w jednej linijce.
komentarz 27 kwietnia 2015 przez użytkownika Arsetus Gaduła (4,760 punkty)
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 użytkownika andrzejugdziejestes Początkujący (390 punkty)
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 użytkownika Mirosław Zelent Nałogowiec (25,450 punkty)
Może to po prostu inna wersja gcc.
komentarz 29 kwietnia 2015 przez użytkownika andrzejugdziejestes Początkujący (390 punkty)
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 użytkownika andrzejugdziejestes Początkujący (390 punkty)
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 użytkownika MisterCodePL Nowicjusz (220 punkty)

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 użytkownika taranti Nowicjusz (200 punkty)
edycja 28 maja 2015 przez użytkownika 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

+111 głosów
37 odpowiedzi 7,803 wizyt
+17 głosów
4 odpowiedzi 1,541 wizyt
pytanie zadane 4 maja 2015 w Nasze poradniki przez użytkownika efik Maniak (67,150 punkty)
0 głosów
3 odpowiedzi 1,968 wizyt
pytanie zadane 14 listopada 2015 w C i C++ przez użytkownika konrad99 Bywalec (2,820 punkty)
...