左嘉


私信TA

用户名:zuojia

访问量:88570

签 名:

Jz

等  级
排  名 5
经  验 34531
参赛次数 226
文章发表 72
年  龄 40
在职情况 在职
学  校 北京理工大学
专  业

  自我简介:

解题思路:
首先判断2018年是否为闰年,“能被4整除并且不能被100整除”或者“能被400整除”的年份为闰年,由于2018不能被4整除、也不能被400整除,所以2018年不是闰年,那么2018年的2月只有28天,判断是否为闰年的函数如下所示:

int is_leap_year(int year){
    return (year%4==0&&year%100!=0||year%400==0)?1:0;
}

然后,为了计算2018年的7月19日是这一年的第几天,需要加上从1月到6月每月的天数以及7月的19天,1月、3月、5月各有31天,2月有28天,4月、6月各有30天,判断每月有多少天的函数如下所示:

int month_days(int year,int month){
    int days;
    if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
        days=31;
    else if(month==2){
        if(is_leap_year(year)) days=29;
        else days=28;
    }else days=30;
    return days;
}

于是我们可以在循环中让year被设定为2018、让month取1到6,计算31+28+31+30+31+30=181,再加上7月的19天就等于200,即2018年的7月19日是这一年的第200天。

注意事项:
根据题目描述,需要提交的是一个整数,不要填写任何多余内容;所以只需直接提交计算结果,不需要展示任何计算过程。

参考代码:

#include<stdio.h>
int main(){
    printf("200");
    return 0;
}


 

0.0分

3 人评分

  评论区

  • «
  • »