Funkcja zwraca błędną wartość

0

Witam,

Mam o to taką funkcje

int MaksymalnyDzienMiesiaca( int DanaMiesiac , int DanaRok )

// Za DanaMiesiac podaje się numer miesiąca, a za DanaRok podaje się Rok

{


    if ( DanaMiesiac == 2 )
        if ( ( DanaRok % 4 == 0 && DanaRok % 100 != 0 ) || DanaRok%400 == 0 )
            return 29 ;
            else
            return  28;

    if ( ( DanaMiesiac == 4 ) || ( DanaMiesiac == 6 ) || ( DanaMiesiac == 9 ) || ( DanaMiesiac == 11 ) )
        return 30;

    if ( ( DanaMiesiac == 1 ) || ( DanaMiesiac == 3 ) || ( DanaMiesiac == 5 ) || ( DanaMiesiac == 7 ) || ( DanaMiesiac == 8 ) || ( DanaMiesiac == 10 ) || ( DanaMiesiac == 12 ) )
        return 31;

}

Funkcja ma zwrócić długość miesiąca, czyli od 28 do 31. Jednak funkcja zwraca 1973817178.
Jezeli dam np

  

int Wynik

// kawałek funkcji

Wynik = 29 ; 

//Dalej kawałek fukcji

return Wynik;

Funkcja zwraca 0. Możecie mi powiedzieć gdzie popełniłem błąd?

PS:
Wszystkim życze wesołym świąt.

0
#include <iostream>
#include <string>
using namespace std;

int MaksymalnyDzienMiesiaca( int DanaMiesiac , int DanaRok ) {
    if ( DanaMiesiac == 2 )
        if ( ( DanaRok % 4 == 0 && DanaRok % 100 != 0 ) || DanaRok%400 == 0 )
            return 29 ;
            else
            return  28;
    else if ( ( DanaMiesiac == 4 ) || ( DanaMiesiac == 6 ) || ( DanaMiesiac == 9 ) || ( DanaMiesiac == 11 ) )
        return 30;

    else if ( ( DanaMiesiac == 1 ) || ( DanaMiesiac == 3 ) || ( DanaMiesiac == 5 ) || ( DanaMiesiac == 7 ) || ( DanaMiesiac == 8 ) || ( DanaMiesiac == 10 ) || ( DanaMiesiac == 12 ) )
        return 31;
}

int main() {
    cout << MaksymalnyDzienMiesiaca(2,1999) << endl;

    return 0;

}

Kiedy zwraca Ci taka liczbę ?

1

"... gdzie popełniłem błąd?": - błąd jest w próbie rozwiązania problemu bez użycia TBrain

int MaksymalnyDzienMiesiaca(int DanaMiesiac,int DanaRok)
  {
   static int sz[]={31,28,31,30,31,30,31,31,30,31,30,31};
   return sz[DanaMiesiac-1]+((DanaMiesiac==2)&&((DanaRok% 4==0)&&((DanaRok%100!= 0)||(DanaRok%400==0))));
  }

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