一道初阶c的题目

题目要求:写代码求出某年某月的天数
比如:输入 2022 11
输出 31

只需注意一点:当求2月时分情况讨论是否为闰年(闰年与平年2月份天数不一样),其他月份都不需要分别讨论

法一(switch语句)

#include <stdio.h>
int main()
{int year, month, days;printf("input the year and the month\n");scanf("%d %d", &year, &month);switch (month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("It has 31 days\n");break;case 4:case 6:case 9:case 11:printf("It has 30 days\n");break;case 2:if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)printf("It has 29 days\n");elseprintf("It has 28 days\n");break;}return 0;
}

这个方法算是非常常规的做法,注意在case2的时候判断是否为闰年即可

闰年的条件是可以被4整除且不能被一百整除,但可以被400整除

法二

#include <stdio.h>int main()
{int y, m;int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };//下标表示月份while (scanf("%d %d", &y, &m) != EOF);{int day = days[m];if (m = 2){if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)day += 1;}printf("%d", day);}return 0;
}

这第二种方法通过创建数组days存储每个月份的天数

注意数组第一位为0是为了让数组的下标对应月份,另外EOF是一种文件结束标志,在头文件stdio.h中被宏定义为-1,由于ASCII范围0~127,当scanf的值不等于EOF证明scanf过程未出问题

此时进入循环,下标m即对应月份,同样在二月进行讨论即可

[C语言]求某年某月的天数(两个方法)相关推荐

  1. c语言:求某年某月的天数(2种方法)

    如果要求某年某月的天数,除了2月的天数会跟是否是平年闰年有关,其他月份的天数都是固定的,所以2月是这里的特殊值,要想知道2月的天数,必须要知道那一年是平年还是润年,以下提供2种思路. 1.利用swit ...

  2. C/C++语言问题——某年某月的天数是多少?

    C/C++语言问题(精讲系列)--某年某月有多少天? Problem Description:输入x和y,输出x年y月有多少天 Input:一行两个正整数x和y,分别表示年份和月份.x在int范围以内 ...

  3. #c语言计算某年某月的天数

    1.List item 必备计算某年某月天数知识c语言: 每年1,3,5,7,8,10,12每月31天 每年4,6,9,11每月30天 每年2月若是闰年29天,平年28天 闰年:1.能被4整除但不能被 ...

  4. P - C语言实验——某年某月的天数

    Description 输入年和月,判断该月有几天? Input 输入年和月,格式为年\月. Output 输出该月的天数. Sample Input 2009\1 Output 31 Hint 注意 ...

  5. C语言实验——某年某月的天数

    Problem Description 输入年和月,判断该月有几天? Input 输入年和月,格式为年\月. Output 输出该月的天数. Sample Input 2009\1 Sample Ou ...

  6. c语言求某年某月1日是星期几,蔡勒(Zeller)公式:根据日期推算是星期几

    Zeller's Congruence: w=y + [y/4] + [c/4] - 2c + [26(m+1)/10] + d - 1 公式中的符号含义如下: w:星期: w对7取模得:0-星期日, ...

  7. C语言求最小公倍数和最大公约数的两种方法

    1.辗转相除法: 辗转相除法(又称欧几里得算法)是一种求最大公因数的方法,它的基本思想是:两个整数的最大公因数等于其中较小的数和两数相除的余数的最大公因数. #include <stdio.h& ...

  8. c语言 | 求100-200之间的素数(两种方法)

    首先要求100-200之间的素数,要知道素数是什么? 素数就是质数,只能被自身和1整除 下面会介绍两种方法: 常规方法: 代码: int main() {     int i = 0;     for ...

  9. 判断一个整数是否是水仙花数 || 编写程序,根据输入的月份和年份,求出该月的天数(1-12)|| 运算符的优先级问题 ||输出小写的a-z以及大写的Z—A||求出1-1/2+1/3-1/4…..1/

    判断一个整数是否是水仙花数,所谓水仙花数是指一个3位数,         其各个位上数字立方和等于其本身.例如: 153 = 1*1*1 + 5*5*5 + 3*3*3                 ...

最新文章

  1. 使用uniapp开发婚庆应用的时候开发公共组件请求网络数据的方式
  2. php html自动打开新页面大小,HTML_html 用超链接打开新窗口其可控制窗口属性,1、html超链接打开的窗口大小 - phpStudy...
  3. 枚举类能继承吗?能被继承吗?
  4. 直接输出代码_php代码:实时输出缩小的图像
  5. ​WeihanLi.Npoi 根据模板导出Excel
  6. mfc 子窗体 按钮不触发_资深程序员用c++开发MFC银行排队叫号系统,小白看了也能学会...
  7. 用Flash和XML构建论坛实例(3)
  8. 打开Android Studio报错required plugin “Android Support” is disabled
  9. POJ1961 Period
  10. 五子棋初步以及对五子棋的局面估值
  11. Java程序员必备的50道Kafka面试题及解析,面试再也不怕问Kafka了
  12. 使用计算机粘贴板的步骤,电脑中快速打开剪贴板查看器的方法
  13. 懂电脑的都不会买i7处理器,程序员:我有一个十几万的电脑梦
  14. cocoscreator中tween详细用法
  15. Imbalance data——数据不平衡问题
  16. 安卓学习 Day26:使用自定义视图绘制文本、图像与图形
  17. 判断闰年(YZOJ-1045)
  18. Word图片插入后只显示最底下一行,输入文字后后面的文字不见了(解决办法(全程简洁无废话))
  19. Linux服务器域名配置
  20. 球半篮球比分,NBA总决赛第三场:顿凯尔特人VS勇士

热门文章

  1. 老婆为什么是别人的好?
  2. 区块链如何加快智慧城市建设?
  3. 企业如何保护“特权访问”的安全?
  4. 计算机论文摘要200字模板,论文的摘要范文(论文摘要是摘抄还是自己写)
  5. Vue - 解析富文本(v-html 指令)
  6. 【转】俞敏洪演讲:度过有意义的生命
  7. 还能用中文写代码?东北话:我先来整一个
  8. 双十一来了——策略模式Strategy
  9. Windows 系统文件资源管理器的命令行参数(如何降权打开程序,如何选择文件)
  10. conda env create -f environment.yml 出现Package XX conflicts for: