从键盘输入年号和月号,求这一年的这一月共有多少天。
这个问题需要考虑闰年问题,因为二月份的天数与闰年有关。闰年的判断依据是:若某年能被4整除,但不能被100整除,则这一年是闰年;若某年能被400整除,则这一年也是闰年。请考虑:闰年如何表达?
本题13个分支(比1年12个月共需12个分支多1),编程可使用的多分支结构有哪些?else…if、if…else的嵌套和switch使用哪一个最为简捷?是switch吗?
代码如下:
- #include <stdio.h>
- #include <stdlib.h>
- void main(){
- int year, month, days;
-
- printf("输入年份:");
- scanf("%d",&year);
- printf("输入月份:");
- scanf("%d", &month);
- switch(month){
- case 1:
- case 3:
- case 5:
- case 7:
- case 8:
- case 10:
- case 12:
- days=31;
- break;
- case 4:
- case 6:
- case 9:
- case 11:
- days=30;
- break;
- case 2:
- // 判断闰年
- if(year%4==0 && year%100!=0 || year%400==0)
- days=29;
- else
- days=28;
- break;
- default:
- printf("月份输入错误!\n");
- exit(1);
- break;
- }
- printf("天数:%d\n", days);
- }
第一次运行结果:
第二次运行结果:
第三次运行结果: