C语言:初学者1--求某一年的某一月有多少天

从键盘输入年号和月号,求这一年的这一月共有多少天。

分析

这个问题需要考虑闰年问题,因为二月份的天数与闰年有关。闰年的判断依据是:若某年能被4整除,但不能被100整除,则这一年是闰年;若某年能被400整除,则这一年也是闰年。请考虑:闰年如何表达?

本题13个分支(比1年12个月共需12个分支多1),编程可使用的多分支结构有哪些?else…if、if…else的嵌套和switch使用哪一个最为简捷?是switch吗?

代码如下:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void main(){
  5. int year, month, days;
  6.  
  7. printf("输入年份:");
  8. scanf("%d",&year);
  9. printf("输入月份:");
  10. scanf("%d", &month);
  11.  
  12. switch(month){
  13. case 1:
  14. case 3:
  15. case 5:
  16. case 7:
  17. case 8:
  18. case 10:
  19. case 12:
  20. days=31;
  21. break;
  22. case 4:
  23. case 6:
  24. case 9:
  25. case 11:
  26. days=30;
  27. break;
  28. case 2:
  29. // 判断闰年
  30. if(year%4==0 && year%100!=0 || year%400==0)
  31. days=29;
  32. else
  33. days=28;
  34. break;
  35. default:
  36. printf("月份输入错误!\n");
  37. exit(1);
  38. break;
  39. }
  40. printf("天数:%d\n", days);
  41. }

第一次运行结果:

输入年份:2014

输入月份:10

天数:31


第二次运行结果:

输入年份:2013

输入月份:02

天数:28


第三次运行结果:

输入年份:2000

输入月份:2

天数:29

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

濯一一

你的鼓励:我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值