C语言计算日期使该年的第几天

C语言计算日期使该年的第几天
不能正常运行,请问是哪里出错了??

#include <stdio.h>

int main()
{
    int year,month,day;
    printf("请依次输入年/月/日:");
    scanf("%d/%d/%d",year,month,day); 
    int fun(int a, int b, int c);
    day=fun(year,month,day);
    printf("该日期是该年的第%d天",day);
    return 0;
} 
int fun(int a, int b, int c)
{
    int i,d=0;
    for(i=0;i<b;i++)
    {
        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
        d=d+31;
        else if(i==2)
        {
            if ("a%4==0&&a%100==0||a%400==0")
            d=d+29;
            else
            d=d+28;
        }
        else
        d=d+30;
    }
    c=d+c;    
    return c;
}

img


改好了


#include <stdio.h>
 
int main()
{
    int year,month,day;
    printf("请依次输入年/月/日:");
    scanf("%d/%d/%d",&year,&month,&day); 
    int fun(int a, int b, int c);
    day=fun(year,month,day);
    printf("该日期是该年的第%d天",day);
    return 0;
} 
int fun(int a, int b, int c)
{
    int i,d=0;
    for(i=0;i<b;i++)
    {
        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
        d=d+31;
        else if(i==2)
        {
            if ("a%4==0&&a%100==0||a%400==0")
            d=d+29;
            else
            d=d+28;
        }
        else
        d=d+30;
    }
    c=d+c;    
    return c;
}

是因为你的第七行格式化输入的时候忘记加&了,加上就没有问题了。

#include <stdio.h>
 
int main()
{
    int year,month,day;
    printf("请依次输入年/月/日:");
    scanf("%d/%d/%d",&year,&month,&day); 
    int fun(int a, int b, int c);
    day=fun(year,month,day);
    printf("该日期是该年的第%d天",day);
    return 0;
} 
int fun(int a, int b, int c)
{
    int i,d=0;
    for(i=0;i<b;i++)
    {
        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
        d=d+31;
        else if(i==2)
        {
            if ("a%4==0&&a%100==0||a%400==0")
            d=d+29;
            else
            d=d+28;
        }
        else
        d=d+30;
    }
    c=d+c;    
    return c;
}

错误1.scanf未加&
错误2.i要从1开始
错误3.闰年判断条件中应该是不能被100整除用!=