dimanche 18 août 2019

my program always go end even early if return statement is true

i want to check leap year in my program but in leap year function it always return false and also every time execute last return statement , even upper return statement is true(example 2008)

GCC with code block in windows 7

int leap (int x)
{
 if(x%400==0)return (1);
 if(x%100==0)return (0);
 if(x%4==0)return (1);
       printf("\tend\t");
  return (0);
 }

int dayfinder(int y, int m)///m for month
   {y=y-1; static int mn[]={0,3,3,6,1,4,6,2,5,0,3,5};
 int ty=y,//ty= temo y to get in 400 set of year
 i=1,ed=0,lp;//ed = cont extra day lp= count store leap year
 while(400*i<ty)
             y=i*400,i++;
 if(ty>=400)
  y=ty-y;

if(y>=300)
                  y-=300,ed+=1;

 if(y>=200)
                 y-=200,ed+=3;

if(y>=100)
                 y-=100,ed+=5;

lp=y/4;



 if(leap(y))ed+=1;

 return (y+lp+ed+mn[m-1]+1)%7;
 }




int main()
{
int i;
scanf("%d",&i);
i=dayfinder(i,8);
printf("%d",i);


 }

Aucun commentaire:

Enregistrer un commentaire