zadanie ze switch C++

zadanie ze switch C++
Monika Kuźmińska
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:7
0

Witam,
Przesyłam treść zadania w zalaczniku, a poniżej program który napisałam, lecz niestety nie wiem dlaczego po wpisaniu roku odpowiadającego "małpa" nie wyświetla się w konsoli napis "malpa". Czy mógłby ktoś zerknąć i podpowiedzieć gdzie popełniam błąd.

Kopiuj
#include <iostream>

using namespace std;

int main()
{
  int n;
    cin >> n;

    switch (n%12)
{
case 1:
    cout << "kogut" << endl;
    break;
case 2:
    cout << "pies" << endl;
    break;
case 3:
    cout << "swinia" << endl;
    break;
case 4:
    cout << "szczur" << endl;
    break;
case 5:
    cout << "bawol" << endl;
    break;
case 6:
    cout << "tygrys" << endl;
    break;
case 7:
    cout << "krolik" << endl;
    break;
case 8:
    cout << "smok" << endl;
    break;
case 9:
    cout << "waz" << endl;
    break;
case 10:
    cout << "kon" << endl;
    break;
case 11:
    cout << "baran" << endl;
    break;
case 12:
    cout << "malpa" << endl;
    break;
}
    return 0;
}
edytowany 1x, ostatnio: kq
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:14 dni
  • Lokalizacja:Kraków
  • Postów:1694
2

Jaką liczbę trzeba wpisać żeby modulo 12 z niej dało 12?

edytowany 1x, ostatnio: szweszwe
Monika Kuźmińska
należy wpisać rok odpowiadający danemu zwierzęciu (tablica w załączniku) :)
szweszwe
ale nie o to pytałem
Monika Kuźmińska
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:7
0

w takim razie nie zrozumiałam pytania gdyż jestem poczatkujaca

AK
pytanie jest z matematyki, nawet nie ze szkoły średniej
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:14 dni
  • Lokalizacja:Kraków
  • Postów:1694
1

Pytanie jest proste. W jakim przypadku liczba %12 == 12? Sama pisałaś ten program? Wiesz jak działa modulo?

SnaaPP
  • Rejestracja:ponad 9 lat
  • Ostatnio:3 miesiące
  • Postów:20
0

No jedyną liczbą, która da ci 12 z modulo z 12 jest oczywiście zero.

EDIT: Oczywiście głupotę napisałem, no zakres modulo działa w zakresie <0, 12)

edytowany 1x, ostatnio: SnaaPP
szweszwe
W sensie 0 % 12 jest 12? :D
SnaaPP
Teraz uświadomiłem sobie, co napisałem. Oczywiście ma być case 0, zamiast case 12 XD
Monika Kuźmińska
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:7
0

tak sama je robiłam po kilku godzinach kombinowania

szweszwe
Podpowiedź: Weź sobie małpi rok, zrób modulo i zobacz na jaki case się łapie.
Monika Kuźmińska
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:7
0

udało mi się zrobić dziekuje za podpowiedz, musze dokładnie zapoznać się z modulo

MarekR22
zegar wskazówkowy zawsze pokazuje godzinę modulo 12 (przy czym 12 to tak naprawdę zero - albo odwrotnie)
_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:8 dni
0

małpa ma mieć numer 0.

Kopiuj
#include <iostream>
using namespace std;

int main() 
{
	const char* tb[]={"malpa","kogut","pies","swinia","szczur","bawol","tygrys","krolik","smok","waz","kon","baran",};
	unsigned year;
	while(cin>>year) cout<<tb[year%12]<<endl;
	return 0;
}

https://ideone.com/1HJmfd

Tak a poropos, za samo nauczanie używania switch lub/oraz goto - wykładowca powinien dostać dożywotny zakaz wykonywania zawodu.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
KamilAdam
goto rozumiem, ale dlaczego switch? W tym przypadku bardzo bez sensu jest, ale chyba są przypadki gdy jest lepszy niż drabinka ifów?
_13th_Dragon
Racja, lepszy niż drabina if'ów, ale jak mamy po kolei to znacznie lepsza tablica, jak mamy z dziurami to i tak tablica + metoda bisection, zaś jak dużo tego badziewia mamy to HashMap

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.