每日一练———C语言算法题--平年闰年问题_求润年的题目_给我高高飞起来啊的博客-程序员秘密

技术标签: 算法  c语言  C语言算法题  


概念


 平年与闰年!!!(闰年比平年多一天,闰年二月29天,平年28天)
   1. 普通闰年: 能被4整除,且不能被100整除为闰年。
   2. 世纪闰年: 能被400整除为闰年。


一、平年、闰年的判断


  题目:输入一个不大于 3000 的年份,判断其是否为 “ 闰年 ”.


   程序框图:

在这里插入图片描述

  程序示例:

#include <stdio.h>

int main() {
    
    int year;
    // 从用户处获得一个不大于 3000 的年份
    scanf("%d", &year);
    if( (year % 100 != 0 && year % 4 == 0) || year % 400 == 0 )
    {
    
        printf("YES");
    } else 
    {
    
        printf("NO");
    }  
    return 0;
}

二、给出年、月、日,判断日期是否存在


   题目: 测试程序将随机给你一个格式为-连接了年、月、日的日期字符串(其中的数字都是没有前导零的,也就是说7不会被写成07)。你将需要判断这个日期在我们的公历体系内是否真实存在。如果存在则输出YES,否则输出NO(注意输出的字母都一定是大写字母)。
测试程序给出的测试输入数据中,年、月、日都是正整数(也就是大于零的整数),均不大于 3000。

  程序示例:

#include <stdio.h>
 
int main ()
{
    
    int year;
    int month;
    int day;
    
    scanf("%d-%d-%d", &year, &month, &day);
    
    if(month < 13)
    {
    
         if( (year % 100 != 0 && year % 4 == 0) || year % 400 == 0 )
         {
    
             if(month == 2)   //闰年特殊二月判断
             {
    
                 if(day <=29)   //闰年二月最多29天
                 {
    
                    printf("YES");
                 } else 
                 {
    
                    printf("NO");
                 }
             } else if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
             {
    
                 if(day <= 31)
                 {
    
                     printf("YES");
                 } else
                 {
    
                     printf("NO");
                 }
             } else 
             {
    
                 if(day <= 30)
                 {
    
                     printf("YES");
                 } else
                 {
    
                     printf("NO");
                 }
             }
             
               
         } else 
         {
    
             
             if(month == 2)   //平年特殊二月判断
             {
    
                 if(day <=28)   //平年二月最多28天
                 {
    
                    printf("YES");
                 } else 
                 {
    
                    printf("NO");
                 }
             } else if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
             {
    
                 if(day <= 31)
                 {
    
                     printf("YES");
                 } else
                 {
    
                     printf("NO");
                 }
             } else 
             {
    
                 if(day <= 30)
                 {
    
                     printf("YES");
                 } else
                 {
    
                     printf("NO");
                 }
             }
             
         }
    } else
    {
    
      printf("NO");  
    }
    
    return 0;
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kkkkkk0729/article/details/113621006

智能推荐

Leetcode 3. 无重复字符的最长子串_qq_32510597的博客-程序员秘密

Leetcode 3. 无重复字符的最长子串1、问题分析2、问题解决3、总结1、问题分析题目链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/  核心思路为: 处理s[i] 节点时,其需要比较的最大长度为dp[i-1],这样可以节省时间。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。2、问题解决  笔者以C+

c语言在屏幕上显示字符,求C语言高手帮忙解答1、在屏幕上显示一行字符串:”hello world!”。2、从键盘上输入两个数,放入整型变量a,b当中,求两数之和c=a+b,两数之差d=a-b。3、从键..._Matt小特的博客-程序员秘密

求C语言高手帮忙解答1、在屏幕上显示一行字符串:”hello world!”。2、从键盘上输入两个数,放入整型变量a,b当中,求两数之和c=a+b,两数之差d=a-b。3、从键盘上输入一个数,放入双精度型变量m中,求m的余弦值、绝对值、平方根值。4、由键盘输入两个数,输出其中的较小数。5、求累加和的值:从键盘上输入一个整数,放入变量n中,求C=1+2+3+4+5+……+n。6、从键盘上输入圆的半径...

Python面试经验总结,面试一时爽,一直面试一直爽!_python面经_Python栈机的博客-程序员秘密

我做了两份简历,用两个手机账号,两个简历名字,分别在各个招聘网站投了双份简历,一个是数据分析的简历、一个是web全栈开发的简历,我真正接触python快2年,不管是学习还是工作学到的东西,这两年大概掌握了(前端+django+爬虫+数据分析+机器学习+NLP+Linux)技术,技术水平自我评价一般,够日常一般使用,基于自己掌握的技术可以分成2方面,web和数据分析,所以为了尽快找到工作,就做了web全栈开发+数据分析(含爬虫)2份简历,同时投递。

golang标准库-bytes(第一节)_go语言 bytes标准库_dalgurak的博客-程序员秘密

bytes包是go提供的用来操作byte切片的工具包,包含对byte切片的查询,截取,替换,拼接,读取等方法,本章主要介绍查询,截取,替换,拼接等方法;读取由于涉及buffer缓冲将在第二节讲解。本节内容全是介绍bytes包的各种各样的方法,内容比较单一,没有太多go编程理论知识。下面将以方法介绍后面紧跟着代码实例的形式进行讲解,代码可直接粘贴运行,读者可自行测试。先介绍比较常用...

ListView控件的使用2_jiangxuefengsboke456的博客-程序员秘密

前面讲到了ListView的简单用法,将一系列数据显示到屏幕上,但是那样可能有些单调,现在来对ListView的界面进行定制,让它来显示更加丰富的内容。这里我们就准备一组NBA球员的图片,分别用来对应之前显示的球员名字。        首先,我们来定义一个实体类,作为ListView适配器的适配类型,新建Player类,代码如下:        Player类只有两个字段,na

随便推点

四个步骤教会你把CRT关联到eNSP,快来学习一下吧! ——思科,华为,网络工程师_思科cisco packet tracer实验模拟器如何使用crt软件来连接配置_ie-lab网络实验室ccie认证之家的博客-程序员秘密

第三步打开CRT并运行模拟器中的设备,点击使用CRT 快速接口,选择Telnet登录协议,输入本地服务器地址127.0.0.1,输入对应设备COM端口号,点击Connect链接即可。第四步,点击连接之后,查看CRT配置界面并进行测试,测试无固定命令,主要是检测连接是否正常,也可以双击打开ENSP默认配置界面进行对比。第二步是查找设备提供的COM端口信息,在ENSP边框右边可以点击显示设备的COM端口信息,默认是从2000开始,依次+1。我们随意使用任何一台设备(PC不可以哦)来演示如何关联到CRT。

测试快速排序对一亿个数据进行排序花费的时间_啥也不会~~~的博客-程序员秘密

import java.text.SimpleDateFormat;import java.util.Date;public class QuickSort { public static void main(String[] args) { int[] array = new int[100000000]; for (int i = 0; i &l...

我裸辞去面试python岗位了_Python_金钱豹的博客-程序员秘密

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

C#微信网页授权登录(NET MVC)_企业微信登录认证c#_风神修罗使的博客-程序员秘密

Token验证WeixinController.csusing System.Web.Mvc;namespace WeChat.Controllers{ public class WeixinController : Controller { public string Index() { var token...

随机森林的随机性实现-特征抽取、样本装袋_随机森林特征抽取随机是多少_Leadingme的博客-程序员秘密

随机森林装袋策略 使用决策树装袋是随机森林的特例,通过随机地从原有训练集中有放回地选取N个样本,将随机性加入到构建模型的过程中。整个构建过程中,装袋使用同样的均匀分布概率分布来产生它的自助样本。装袋状袋又称自助聚集,是一种根据均匀分布概率分布从数据集中重复抽取(有放回的)的技术,每个自助样本集和原数据一样大。由于抽样过程是有放回的,因此一些样本可能在同一个样本训练数据集中出现多次,而其他的一些被忽略。一般来说说,自助样本Di大约包含63%的原训练数据,因为每一次样本抽到的Di的概率为1 - (

推荐文章

热门文章

相关标签