今年的第几天

通过输入的年月日判断对应日期是今年的第几天,题目要求如下:
今年的第几天
对于这个问题的求解实际上是非常简单。
求解思路如下:

  1. 判断该年是平年还是闰年
  2. 将所有月份的天数相加
  3. 将输入天数相加即可得到当前日期是该年的第几天

实现代码如下:

#include <stdio.h>

int isLeap(int year){
    //判断是否为闰年,1表示为闰年,0表示平年
    return (year % 4== 0 && year % 100 != 0)|| (year % 400 == 0);
}

int main(){
    int months[13][2] = {{0,0},{31,31},{28,29},
                         {31,31},{30,30},{31,31},
                         {30,30},{31,31},{31,31},
                         {30,30},{31,31},{30,30},{31,31}};
    int year,month,day,total;
    while(scanf("%d%d%d",&year,&month,&day)!=EOF){
        total = day;
        int b = isLeap(year);
        for(int i=0;i<month;i++){
            total += months[i][b];
        }
        printf("%d\n",total);
    }
    return 0;
}

最终通过的结果:
结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值