8.18 给出年、月、日,计算该日是该年的第几天。

相关知识点:

判断闰年一般的规律为: 四年一闰,百年不闰,四百年再闰.

其简单计算方法:

1.能被4整除而不能被100整除.(如2004年就是闰年,1800年不是.)

2.能被400整除.(如2000年是闰年)

另外,

2月:平年有28天,闰年有29天。

#include <stdio.h>

//leap==1是闰年,leap==0平年
int year,month,day,leap,num;
int main(){
    int leaper(int year);
    int summer();
    printf("input year, month, day:
");
    scanf("%d%d%d", &year, &month, &day);
    leaper(year);
    num=summer();
    printf("该日期是该年的第%d天.
",num);
    //printf("%d
",leap);
    return 0;
}

//判断是否是闰年
int leaper(int year){
    if((year%4)==0 && (year%100)!=0)
        leap=1;
        else if(year%400 == 0) leap=1;
                else leap=0;
    return leap;
}

//计算该天是这年的第几天
int summer(){
    int sum=0,i;
    //平年每月的天数
    int mount[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    
        for(i=0; i<month-1; i++){
            sum +=mount[i];    
            }

    //闰年,并且月份大于2,总天数加1
    if(leap && month>=3) sum++;
    
    sum=sum+day;
    return sum;
}

结果:

原文地址:https://www.cnblogs.com/Allen-win/p/7258549.html