学c语言小菜鸡有问题

img


是这样的,我有一个问题,要求输入一个日期,计算出这个日期是这一年的第几天,可是我不会弄,求指导怎么改🥺
本人很菜,希望大家看到我的问题不要嫌弃😢

这么改,供参考:

img


换种写法,供参考:

#include<stdio.h>
int main()
{
    int year, month, day, sum, i;
    scanf("%d %d %d", &year, &month, &day);
    for (i = 1, sum = 0; i < month; i++)
    {
        if (i == 2)
        {
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
                sum += 29;
            else
                sum += 28;
        }
        else if (i == 4 || i == 6 || i == 9 || i == 11)
            sum += 30;
        else
            sum += 31;
    }
    sum += day;
    printf("%d", sum);
    return 0;
}
 

你直接发代码吧,我帮你改了发你

#include <stdio.h>
#include <stdlib.h>

int main() {
    
    int year, month, day;
    int sum=0;
    printf("请输入一个八位数:年/月/日\n");
    scanf("%d/%d/%d",&year, &month, &day);
    
    int month_day[12]={0,31,28,31,30,31,30,31,31,30,31,30};
    
    if ( year%4 != 0 ) {     //  非闰年
        for ( int i=0; i<month; i++ ) {
            sum += month_day[i];
        }
        sum = sum + day;
    }
    else {
        if ( year%100 != 0) {     //  闰年 
            for ( int i=0; i<month; i++ )
                sum += month_day[i];
            if ( month > 2)
                sum = sum + day + 1;
            else
                sum = sum + day;
        }
        else {
            if ( year%400 == 0 ) {    //  闰年
                for ( int i=0; i<month; i++ )
                    sum += month_day[i];
                if ( month > 2)
                    sum = sum + day + 1;
                else
                    sum = sum + day;                
            }
            else {      //  非闰年
                for ( int i=0; i<month; i++ )
                    sum += month_day[i];
                sum = sum + day;
            }
        }
    }
    
    printf("\n该日期是第%d天",sum); 
    
    return 0;
}