IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【蓝桥杯】 合法日期:小蓝正在上小学,老师要求同学们在暑假每天记日记。可是小蓝整个暑假都在玩,直到最后一天才想起要记日记。于是小蓝赶紧编了一些日记交给老师。 没想到,日记很快就被老师发现了问题,... -> 正文阅读

[C++知识库]【蓝桥杯】 合法日期:小蓝正在上小学,老师要求同学们在暑假每天记日记。可是小蓝整个暑假都在玩,直到最后一天才想起要记日记。于是小蓝赶紧编了一些日记交给老师。 没想到,日记很快就被老师发现了问题,...

题目描述

题目传送门 >> 合法日期

【问题描述】
小蓝正在上小学,老师要求同学们在暑假每天记日记。可是小蓝整个暑假都在玩,直到最后一天才想起要记日记。于是小蓝赶紧编了一些日记交给老师。
没想到,日记很快就被老师发现了问题,原来小蓝记完 8 月 31 日的日记,竟又记了 8 月 32 日和 8 月 33 日的日记。这显然是有问题的,因为根本没有 8 月 32 日和 8 月 33 日。
给定一个月份和一个日期,请问 2021 年有没有这一天。

【输入描述】
输入的第一行包含一个整数 m,表示月份。
第二行包含一个整数 d,表示日期。
其中,1≤m≤20,1≤d≤40。

【输出描述】
如果2021年有 m 月 d 日,输入 yes,否则输出 no。

【输入输出样例】
示例1
输入:

 8
 32

输出:

 no

示例2
输入:

 2
 28

输出:

 yes

【运行限制】
? 最大运行时间:1s
? 最大运行内存: 128M


解题思路

【总体思路】
题目已经给了是2021年,我们就可以直接知道2月最多28天。
但这题有个易错点,没去判断月份是否小于等于12。要注意到题目中输入值描述中提到:月份1≤m≤20,日期1≤d≤40,故我们要先判断是否满足m ≤ 12

【代码思路】
有两种方法:
第一种则是嵌套if :若满足m ≤ 12,则判断月份是多少,d是否小于该月最大日期。
第二种方法是用数组存放每个月的最大日期,然后直接与数组相应值去对比日期。


解题代码

C语言

法一

#include <stdio.h>
int main()
{
  int month, day;
  scanf("%d",&month);
  scanf("%d",&day);
  if(month<13){
    if(month==2){
      if (day<=28){
        printf("yes");
      }
      else{
        printf("no");
      }
      return 0;
    }
    if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
      if (day<=31){
        printf("yes");
      }
      else{
        printf("no");
      }
      return 0;
    }
    else{
      if (day<=30){
        printf("yes");
      }
      else{
        printf("no");
      }
      return 0;
    }
  }else{
        printf("no");
  }
  return 0;
}

法二

#include <stdio.h>
int main()
{
  int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
  int m,d;
  scanf("%d",&m);
  scanf("%d",&d);
  if(m>0 && m<13 && d<month[m])
    printf("yes");
  else 
    printf("no");
  return 0;
}

测试用例

测试1
输入:

 15
 9

输出:

 no

测试2
输入:

 2
 30

输出:

 no
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 12:39:41  更:2021-10-27 12:41:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:58:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码