为啥闰年时的数值不变


#include<stdio.h>
int leap(int a)
{
   
    if(a%400==0||a%4==0&&a%100!=0)
    {
    a=1;
    return a;
    }  
    else
    {
    a=0;
    return a;}
}
int sumday(int a,int b,int c)
{   int d,e,f;
    d=b-1; 
    a=leap(a);
    switch(d)
    {
    case 0:e=0;break;
    case 1:e=31;break;
    case 2:e=59;break;
    case 3:e=90;break;
    case 4:e=120;break;
    case 5:e=151;break;
    case 6:e=181;break;
    case 7:e=212;break;
    case 8:e=243;break;
    case 9:e=273;break;
    case 10:e=304;break;
    case 11:e=334;break;
}
    if(a==1&&d>2)
    f=a+e+c;
    else
    f=e+c;
    return f;
}
int main()
{
    int a,b,c;
    printf("请输入年月日");
    scanf("%d %d %d",&a,&b,&c);
    printf("计算该日是该年的第%d天",sumday(a,b,c));
    return 0;
}为什么这个代码敲出来闰年和不润年数值一样

年月日你怎么输入的呢?贴图看看

if (a == 1 && d > 2) 应该是 if (a == 1 && b > 2)

if(a%400==0||a%4==0&&a%100!=0)
改为
if(a%400==0||(a%4==0&&a%100!=0))

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632