经典算法之天数问题

发布时间 2024-01-05 21:55:29作者: 神奇的萝卜丝

这题算是非常经典的题目了。

无非就是判断闰年然后计算天数而已。

用两个month数组记录月份天数

一三五七八十腊是31天,二月份非闰年28天,闰年29 天,其余都是30天就好了。

#include <stdio.h>
int judge( int year ) {
    if( year % 400 == 0 || year % 100 != 0 && year % 4 == 0) {
        return 1;
    }
    return 0;
}
int main ( ){
    int year , month , ri ;
    int A[13]={0,31,28,31,30,31,31,31,30,30,31,30,31} ;
    int B[13]={0,31,29,31,30,31,31,31,30,30,31,30,31};
    while ( scanf("%d %d %d",&year,&month,&ri) != EOF ) {
        int days = 0 ;
        if( judge( year ) == 1 ) {
            for( int i = 1 ; i < month ; i++ ) {
                days += B[i] ;
            }
            days += ri ;
        }else{
            for( int i = 1 ; i < month ; i++ ) {
                days += A[i] ;
            }
            days += ri ;
        }
        printf("%d\n", days ) ;
    }
    return  0 ;
}

结果如下: