C语言:输入某年某月某日,判断这一天是这一年的第几天

2023-10-22 08:20

本文主要是介绍C语言:输入某年某月某日,判断这一天是这一年的第几天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注意:考虑闰年:能被4整除而不能被100整除的为闰年,能被400整除而不能被3200整除的是闰年

综上,得到代码:

#include<stdio.h>
int main() {int year, month, day;int m;scanf("%d %d %d", &year, &month, &day);if (year % 4 == 0 && year % 100 != 0||year%400==0) {switch (month) {case 1:m = day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 2:m = 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 3:m = 31 + 29 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 4:m = 31 + 29 + 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 5:m = 31 + 29 + 31 + 30 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 6:m = 31 + 29 + 31 + 30 + 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 7:m = 31 + 29 + 31 + 30 + 31 + 30 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 8:m = 31 + 29 + 31 + 30 + 31 + 30 + 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 9:m = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 10:m = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 11:m = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 12:m = 31 + 29 + 30 + 31 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;}}else {switch (month) {case 1:m = day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 2:m = 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 3:m = 31 + 28 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 4:m = 31 + 28 + 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 5:m = 31 + 28 + 31 + 30 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 6:m = 31 + 28 + 31 + 30 + 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 7:m = 31 + 28 + 31 + 30 + 31 + 30 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 8:m = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 9:m = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 10:m = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 11:m = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;case 12:m = 31 + 28 + 30 + 31 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;printf("%d年%d月%d日,是这一年的第%d天", year, month, day, m);break;}}
}

运行结果

备注:第一次学写博客,正在努力学习c语言,在敲这道经典题时就有了写博客的想法,也是为了记录自己学习的经历,很简单的页面,如有不足还请提出来一起学习呀!

这篇关于C语言:输入某年某月某日,判断这一天是这一年的第几天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/260225

相关文章

poj 3259 uva 558 Wormholes(bellman最短路负权回路判断)

poj 3259: 题意:John的农场里n块地,m条路连接两块地,w个虫洞,虫洞是一条单向路,不但会把你传送到目的地,而且时间会倒退Ts。 任务是求你会不会在从某块地出发后又回来,看到了离开之前的自己。 判断树中是否存在负权回路就ok了。 bellman代码: #include<stdio.h>const int MaxN = 501;//农场数const int

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

zoj 1721 判断2条线段(完全)相交

给出起点,终点,与一些障碍线段。 求起点到终点的最短路。 枚举2点的距离,然后最短路。 2点可达条件:没有线段与这2点所构成的线段(完全)相交。 const double eps = 1e-8 ;double add(double x , double y){if(fabs(x+y) < eps*(fabs(x) + fabs(y))) return 0 ;return x + y ;

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

Codeforces Round #113 (Div. 2) B 判断多边形是否在凸包内

题目点击打开链接 凸多边形A, 多边形B, 判断B是否严格在A内。  注意AB有重点 。  将A,B上的点合在一起求凸包,如果凸包上的点是B的某个点,则B肯定不在A内。 或者说B上的某点在凸包的边上则也说明B不严格在A里面。 这个处理有个巧妙的方法,只需在求凸包的时候, <=  改成< 也就是说凸包一条边上的所有点都重复点都记录在凸包里面了。 另外不能去重点。 int

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而