Myślę, że nie o to chodziło twojemu nauczycielowi. Konstrukcja tej pierwszej funkcji jest bez sensu, skoro dostajesz daną liczbę to po co ci funjcja która zwróci dokładnie to samo co wpisał użytkownik?
W każdym razię na koniec lini 27 wpisałéś średnik po instrukcji `else if`. Ale polecam zastanowić się jak możesz zamienić te spaghetti w algorytm.
Koncept algorytmu/podstawowe informacje:
Niestety nie możemy nauczyć komputera liczyć na kostkach. Musimy przekazać mu pare informacji które wiemy o dniach miesiąca, takich jak rok przemienny. Poniżej napisałem tabelke która pomoże nam w określeniu działania algorytmu.
1 |
Styczeń |
31 |
2 |
Luty |
28 (29 w roku przemiennym) |
3 |
Marzec |
31 |
4 |
Kwiecieć |
30 |
5 |
Maj |
31 |
6 |
Czerwiec |
30 |
7 |
Lipiec |
31 |
8 |
Sierpień |
31 |
9 |
Wrzesień |
30 |
10 |
Październik |
31 |
11 |
Listopad |
30 |
12 |
Grudzień |
31 |
Algorytm:
Najprościej możesz to zapisać w ten sposób:
int zwrocIloscDniWMiesiacu(short miesiac, bool rokPrzemienny) {
if ( miesiac == 2 ) { // Luty
if ( rokPrzemienny )
dniWMiesiacu = 29;
else
dniWMiesiacu = 28;
} else if ( miesiac == 4 || miesiac == 6 ||
miesiac == 9 || miesiac == 11 )
dniWMiesiacu = 30;
else
dniWMiesiacu = 31;
return dniWMiesiacu;
}
Zawsze zaczynaj od kartki papieru i długopisa zanim podejdziesz do klawiatury. To oszczędzi ci dużo czasu.