zadanie ze switch C++

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.

#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;
}
2

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

0

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

1

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

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)

0

tak sama je robiłam po kilku godzinach kombinowania

0

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

0

małpa ma mieć numer 0.

#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.

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