输入日期,计算当前日期是这一年中的第几天(涉及闰年问题)

一、应用到的知识:闰年问题,数组,for循环,命令行参数,atoi函数

        1. 闰年问题:

        闰年 是指该年有366日,即较平常年份多出一日。每400年就会有一次闰年;或者年份是4的倍数,但不是100的倍数的,也是闰年。如2000年是闰年,2004年也是闰年,但2001年却不是闰年。

        2. 数组:

        连续有顺序的,大小固定并且里面的数据类型一致的内存空间
                

        3.for循环:

                for (初始化; 判断表达式; 变量处理){
                    代码块;
                }
        初始化:用于初始化变量,只有刚进入for循环时执行
        判断表达式:只要结果为真(不为0,NULL等),就会执行代码块
        变量处理:对变量进行处理的,如 i++, i = i * 2,  i--等
        注意:
                a. 首次进入for循环时,变量处理不会进行,只会进行初始化和判断表达式的。
                b. 以上三个并不是必须填写的,可以和while循环互相替换

// 代码输出:
// 0
for (int i = 0; i < 1; i++){printf("%d\n", i);
}// 将i < 1改为 i < 0 则第一次进入不满足条件,不输出

        4. 命令行参数(以下列代码为例):

#include <stdio.h>int main(int argc, char* argv[]) {for (int i = 0; i < argc; i++) {printf("arg %d: %s\n", i, argv[i]);}
}

        上面示例中,main()函数有两个参数argc(argument count)和argv(argument variable)。这两个参数的名字可以任意取,但是一般来说,约定俗成就是使用这两个词。

第一个参数argc是命令行参数的数量,程序名也被计算在内。
第二个参数argv是一个数组,保存了所有的命令行输入,它的每个成员是一个字符串指针。

        5.atoi函数:

        该函数在头文件stdlib.h中,功能是将字符串转为整数(ASCII to int);
        函数原型:int atoi(const char* nptr);
        返回值:整型
        参数:字符串(字符类型的数组)

二、完整代码和功能演示视频

#include <stdio.h>
#include <stdlib.h>// 返回一年中的第几天的函数
int Day(int year, int month, int day){// 初始化月份天数,没有0月,空置  二月int months[13] = {0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){months[2] = 29;} else {months[2] = 28;}int ret = 0;for (int i = 1; i < month; i++){ret += months[i];}return ret + day;
}// 主函数的参数:argc和argv
int main(int argc, char *argv[]){if (argc != 4){printf("Usage: %s 2020 12 3\n", argv[0]);return 1;}int count = 0;count = Day(atoi(argv[1]), atoi(argv[2]), atoi(argv[3]));printf("The %s-%s-%s is %d days.\n", argv[1], argv[2], argv[3], count);return 0;
}

计算当天年天数20231227

三、介绍

        1. 定义数组装载一年中12个月的每天天数,并且计算闰年将2月天数单独装载

        2. 先封装一个函数Day(), 然后通过命令行参数输入日期

        3. 在Day函数中,计算从1月1日截止至输入日期的天数,最后在主函数中输出

       

四、简单说一下外话

        注意,本次的代码仅仅做一个小练习,所以并未对输入的参数进行设限,故输入一些错误数据,如13月,或者51号,或者 -2013年都是可以的。如果想要使代码更完善一些,不妨自己添加一些判断。

        本次代码难度很小,可以利用库函数time.h中的函数简单完成,但本次仅仅是为了了解一些知识,并不对time.h库进行介绍

        制作不易,还望点赞评论支持一下,谢谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flowable-升级为7.0.0.M2-第二节

目录 替换变化的类和配置把javax.servlet 替换为 jakarta.servlet修改redis的配置配置logging.level.org.springframework.boot.autoconfigureerror避免影响视听 替换变化的类和配置 把javax.servlet 替换为 jakarta.servlet import javax.servlet.ServletContext; import ja…

【Linux基础】9. 用户管理

文章目录 【 1. 用户基本管理 】1.1 useradd 添加用户1.2 passwd 更改用户密码1.3 su 切换用户1.4 userdel 删除用户 【 2. 用户的组 】2.1 more 查看系统所有组2.2 显示用户的组2.3 更改用户的组 【 3. 环境变量 】 【 1. 用户基本管理 】 1.1 useradd 添加用户 全称作用use…

【教程】使用ipagurd打包与混淆Cocos2d-x的Lua脚本

文章目录 摘要引言正文1. 准备工作2. 使用ipaguard处理Lua文件3. 运行ipagurd进行混淆代码加密具体步骤测试和配置阶段IPA 重签名操作步骤4. IPA重签名与发布 总结 摘要 本文将介绍如何使用ipagurd工具对Cocos2d-x中的Lua脚本进行打包与混淆&#xff0c;以及在iOS应用开发中的…

tekton 发布 kubernetes 应用

tekton 发布 kubernetes 应用 基于Kubernetes 服务部署 Tekton Pipeline 实例&#xff0c;部署完成后使用tekton来完成源码拉取、应用打包、镜像推送和应用部署。 本文实现一个 golang-helloworld 项目 CI/CD 的完整流程&#xff0c;具体包括以下步骤&#xff1a; 从 gitee…

css 超过一行/多行显示省略号... - 附示例

效果 1、超过一行 2、超过多行 - 以两行为例 二、示例代码 1、超过一行 margin: 20px; width: 50px; border: 1px solid red; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 2、超过多行 - 以两行为例 margin: 20px; width: 50px; border: 1px solid r…

【日常聊聊】年度总结

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 博客创作的初衷&#xff1a; 学到的技能&#xff1a; Java知识的深度掌握&#xff1a; Spring框架的应用和实践&#xff1a; 前端技…

Unity so文件的问题

文章目录 问题在面板上无法显示子节点如何保存继承于so的类必须放置在单个脚本so类文件名和类名要一致 问题 最近自己在写一个行为树出现一些问题记录一下首先NodeTree肯定是so文件但是node可以是单纯的类&#xff0c;也可以是so。后来我发现只能是so 在面板上无法显示 第一…

linux 网络工具(二)

linux 网络工具 1. ip命令簇4.1 address4.2 link4.3 route4.4 rule 2. 其他常用命令2.1 ifup/ifdown2.2 配置主机名2.3 设置DNS服务器指向2.4 配置域名解析2.5 ss2.6 路由相关配置文件2.7 查看机器可用端口2.8 traceroute2.9 dhclient 1. ip命令簇 Linux的ip命令和ifconfig类似…

系列十七(面试)、请你谈谈RocketMQ的消息丢失问题

一、RocketMQ的消息丢失问题 1.1、概述 生产环境中为了保证服务的高可用&#xff0c;一般情况下都是采用集群的方式&#xff0c;RocketMQ也不例外&#xff0c;另外现在企业级的开发基本都是分布式微服务的模式&#xff0c;这就存在着跨网络传输数据的问题&#xff0c;而网络传…

【PTA】L1-016 验证身份(C++)

题目链接 &#xff1a; 题目要求&#xff1a; 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&#xff0…

【七】【C语言\动态规划】最大子数组和、环形子数组的最大和、乘积最大子数组,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略&#xff0c;它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题&#xff0c;并将每个小问题的解保存起来。这样&#xff0c;当我们需要解决原始问题的时候&#xff0c;我们就可以直接利…

python脚本抢各大平台大额优惠卷

文章目录 python脚本抢各大平台大额优惠卷写在前面准备阶段一、所需工具二、ChromeDriver下载教程 三、Seleuinm安装1、打开cmd&#xff0c;输入如下命令 开始抢券淘宝脚本京东抢购脚本 python脚本抢各大平台大额优惠卷 写在前面 当电商平台上演盛大的购物狂欢时&#xff0c;如…

SpringBoot3 基础特性

1. SpringApplication 1.1. 自定义 banner 类路径添加banner.txt或设置spring.banner.location就可以定制 banner推荐网站&#xff1a;Spring Boot banner 在线生成工具&#xff0c;制作下载英文 banner.txt&#xff0c;修改替换 banner.txt 文字实现自定义&#xff0c;个性化…

数据驱动与数据安全,自动驾驶看得见的门槛和看不见的天花板

作者 |田水 编辑 |德新 尽管心理有所准备&#xff0c;2023年智能驾驶赛道的内卷程度还是超出了大多数人的预期。 这一年&#xff0c;汽车价格战突然开打&#xff0c;主机厂将来自销售终端的价格压力&#xff0c;传导到下游智驾供应商&#xff0c;于是&#xff0c;市面上出现…

医院云HIS系统源码,saas多医院版,适用于专科医院、集团医院、基层医院

医院云HIS系统源码&#xff0c;自主研发&#xff0c;自主版权&#xff0c;电子病历病历4级 系统概述&#xff1a; 一款满足基层医院各类业务需要的云HIS系统。该系统能帮助基层医院完成日常各类业务&#xff0c;提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统…

数据结构:单调栈

1.单调栈 单调栈是一种数据结构&#xff0c;其中存放的数据应该是有序的&#xff0c;所以单调栈也有单调递减栈和单调递增栈 单调递增栈&#xff1a;栈顶到栈底的元素大小是从小到大 单调递减栈&#xff1a;栈顶到栈底的元素大小是从大到小 单调栈主要就是用来求一个给定序列中…

【unity3D-粒子系统】粒子系统主模块-Particle System篇

&#x1f497; 未来的游戏开发程序媛&#xff0c;现在的努力学习菜鸡 &#x1f4a6;本专栏是我关于游戏开发的学习笔记 &#x1f236;本篇是unity的粒子系统主模块-Particle System 基础知识 Particle System 介绍&#xff1a;粒子系统的主模块&#xff0c;是必需的模块&#x…

ESP8266 ESP-01/01s 工作模式与固件下载烧录接线

注意点&#xff1a; ESP8266 ESP-01与 ESP8266 ESP-01s接线类似 。本文使用的是ESP8266 ESP-01 WIFI模块&#xff0c;详细信息见如下图片。本文固件下载的是ESP8266 的MQTT固件&#xff0c;下载其它固件流程一致。本文使用的是杜邦线连接面包板来进行使用&#xff0c;与使用开发…

DRF从入门到精通五(路由组件、认证组件、权限组件、频率组件及认证、权限源码分析)

文章目录 一、路由组件REST framework提供了两个routeraction装饰器 二、认证组件(Authentication)三、权限组件(Permissions)内置权限类 四、频率组件(Throttling)五、权限组件源码分析六、认证组件源码分析 一、路由组件 对于视图集ViewSetMixin&#xff0c;我们除了可以自己…

YOLOv8可视化:引入多种可视化CAM方法,为科研保驾护航

💡💡💡本文内容:调用pytorch下的CAM可视化库,支持十多种可视化方法,打开“黑盒”,让YOLOv8变得相对可解释性 收录 YOLOv8原创自研 https://blog.csdn.net/m0_63774211/category_12511737.html?spm=1001.2014.3001.5482 💡💡💡全网独家首发创新(原创),适…