C语言初阶牛客网刷题——HJ73 计算日期到天数转换【难度:简单】

1. 题目描述------HJ73 计算日期到天数转换

牛客网OJ题链接

描述

每一年中都有 12 个月份。其中,1,3,5,7,8,10,12 月每个月有 31 天;

4,6,9,11 月每个月有 30 天;而对于 2 月,闰年时有29 天,平年时有 28 天。

现在,对应输入的日期,计算这是这一年的第几天。

一个年份是闰年当且仅当它满足下列两种情况其中的一种:

∙这个年份是 4 的整数倍,但不是 100 的整数倍;

∙这个年份是 400400 的整数倍。

输入描述:

输出描述:

输出一个整数,代表输入的日期是这一年的第几天。

示例1

输入:2012 12 31

输出:366

说明:2012 年是闰年,因此2012年12月31 日是这一年的第 366 天。
示例2

输入:1982 3 4

输出:63

2. 思路

之前做过牛客网刷题 ------C语言初阶(5操作符)------BC54 获得月份天数

就是在获取到每个月的基础上,在for循环加一下每个月的天数即可

3. 代码实现

cpp 复制代码
#include <stdio.h>

int isLeapYear(int year)
{
    if((year%4==0&&year%100!=0)||year%400 ==0)
    {
        return 1;
    }
    return 0;
}
int main() {
    int year, mouth,day;
    int days[]= {0, 31,28,31,30,31,30,31,31,30,31,30,31 };
    while (scanf("%d %d %d", &year, &mouth,&day) != EOF) { 
        int totalDay = day;
        int day = days[mouth];
        if(isLeapYear(year)&&mouth>2)
        {
            totalDay+=1;
        }
        int i  = 0;
        for(i = mouth-1;i>0;i--)
        {
            totalDay += days[i];
        }

        printf("%d",totalDay);
    }
    return 0;
}
相关推荐
2的n次方_几秒前
CANN Ascend C 编程语言深度解析:异构并行架构、显式存储层级与指令级精细化控制机制
c语言·开发语言·架构
java干货32 分钟前
为什么 “File 10“ 排在 “File 2“ 前面?解决文件名排序的终极算法:自然排序
开发语言·python·算法
_F_y32 分钟前
C语言重点知识总结(含KMP详细讲解)
c语言·开发语言
毕设源码-郭学长33 分钟前
【开题答辩全过程】以 基于python的二手房数据分析与可视化为例,包含答辩的问题和答案
开发语言·python·数据分析
无小道1 小时前
Qt——常用控件
开发语言·qt
aini_lovee1 小时前
MATLAB基于小波技术的图像融合实现
开发语言·人工智能·matlab
郝学胜-神的一滴1 小时前
深入解析C/S模型下的TCP通信流程:从握手到挥手的技术之旅
linux·服务器·c语言·网络·网络协议·tcp/ip
R1nG8631 小时前
多线程安全设计 CANN Runtime关键数据结构的锁优化
开发语言·cann
初次见面我叫泰隆1 小时前
Qt——5、Qt系统相关
开发语言·qt·客户端开发
亓才孓2 小时前
[Class的应用]获取类的信息
java·开发语言