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;
}
相关推荐
BIGSHU09235 分钟前
java多线程场景3-并发处理和异步请求
java·开发语言·python
_OP_CHEN14 分钟前
数据结构(C语言篇):(十一)二叉树概念介绍
c语言·开发语言·数据结构·二叉树·学习笔记··
Neverfadeaway16 分钟前
C语言————冒泡排序(例题2)
c语言·数据结构·算法·冒泡排序·升序排列·降序排列
柯南二号24 分钟前
【设计模式】【观察者模式】实例
java·开发语言·servlet
索迪迈科技33 分钟前
Java-Spring入门指南(四)深入IOC本质与依赖注入(DI)实战
java·开发语言·spring
A 风40 分钟前
封装日期选择器组件,带有上周,下周按钮
开发语言·javascript·vue.js
索迪迈科技41 分钟前
C语言 memcpy 的使用
c语言·开发语言
yuyousheng1 小时前
C语言中sizeof和strlen的区别
c语言·开发语言·哈希算法
Mr_sun.1 小时前
Day04_苍穹外卖——套餐管理(实战)
开发语言·python
南棱笑笑生1 小时前
20250910在荣品RD-RK3588-MID开发板的Android13系统下修改短按power按键的休眠/唤醒为关闭/打开背光
开发语言·python·rockchip