Zadatak 5-Određivanje broja dana po mesecima - rešenje
Prvo se učita tekuća godina i redni broj meseca. Godina je potrebna da bi se odredio broj dana ako je u pitanju februar mesec, da bi se odredilo da li je godina prestupna ili ne.
Pomoću switch naredbe se prvo razvrstaju meseci koji imaju 31, zatim oni koji imaju 30, a na kraju mesec 2, čiji se broj dana najteže određuje. Ovde se iskoristila osobina switch naredbe da kad jednom uđe u odgovarajući case(slučaj) ne prekida izvršavanje sve dok ne naiđe na "break" naredbu. Naredba "break" se zato postavi tek kad se izređaju svi slučajevi sa istim brojem dana.
Uslov za prestupnu godinu obuhvata tri poduslova: prvi da je godina deljiva sa 4, drugi da nije deljiva sa 100 i treći da je deljiva sa 400.
Pomoću switch naredbe se prvo razvrstaju meseci koji imaju 31, zatim oni koji imaju 30, a na kraju mesec 2, čiji se broj dana najteže određuje. Ovde se iskoristila osobina switch naredbe da kad jednom uđe u odgovarajući case(slučaj) ne prekida izvršavanje sve dok ne naiđe na "break" naredbu. Naredba "break" se zato postavi tek kad se izređaju svi slučajevi sa istim brojem dana.
Uslov za prestupnu godinu obuhvata tri poduslova: prvi da je godina deljiva sa 4, drugi da nije deljiva sa 100 i treći da je deljiva sa 400.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int G,M,BD;
printf("Unesi godinu i mesec u godini\n");
scanf("%d%d",&G,&M);
switch(M)
{
/*meseci koji imaju 31 dan */
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
BD=31;
break;
/*meseci koji imaju 30 dan */
case 4:
case 6:
case 9:
case 11:
BD=30;
break;
case 2:
/*Ako je prestupna godina*/
if(((G % 4 == 0) && !(G % 100 == 0)) || (G % 400 ==0))
BD=29;
else
BD=28;
break;
}
printf("Broj dana iznosi %d",BD);
return 0;
}
#include <stdlib.h>
int main()
{
int G,M,BD;
printf("Unesi godinu i mesec u godini\n");
scanf("%d%d",&G,&M);
switch(M)
{
/*meseci koji imaju 31 dan */
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
BD=31;
break;
/*meseci koji imaju 30 dan */
case 4:
case 6:
case 9:
case 11:
BD=30;
break;
case 2:
/*Ako je prestupna godina*/
if(((G % 4 == 0) && !(G % 100 == 0)) || (G % 400 ==0))
BD=29;
else
BD=28;
break;
}
printf("Broj dana iznosi %d",BD);
return 0;
}