1. 任务描述

输入年份和月份,输出本月有多少天。合理选择分支语句完成设计任务。

2. 程序流程图
3、switch 语句-项目3-本月有几天

3. 代码实现

/*
*Copyright(c)2019,[email protected]
*All rights reserved.
*文件名称:count_days.cpp
*作    者:马娅芳
*完成日期:2019.1.14
*版 本 号: v1.0

*问题描述:输入年份和月份,输出本月有多少天。合理选择分支语句完成设计任务。
*程序输入:某一年份和月份 
*程序输出:该月的天数 
*/

#include <stdio.h>

int main(){
	int year, month, day;
	scanf("%d %d", &year, &month);
	
	if((year % 4 == 0 && year %100 != 0) || year % 400 == 0){  //如果该年份是闰年 
		switch(month)
		{
			case 1:  //1,3,5,7,8,10,12月有31天 
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				day = 31;
				break;
			case 2:  //闰年的2月有29天 
				day = 29;
				break;
			case 4:  //4,6,9,11月 有30天 
			case 6:
			case 9:
			case 11:
			    day = 30;
			    break;
		}
    }
    
    else{
    	switch(month)
		{
			case 1:  //1,3,5,7,8,10,12月有31天 
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				day = 31;
				break;
			case 2:  //平年的2月只有28天 
				day = 28;
				break;
			case 4:  //4,6,9,11月 有30天 
			case 6:
			case 9:
			case 11:
			    day = 30;
			    break;
		} 
	} 
	printf("本月%d天", day);
	
	return 0;
}

4. 运行结果
3、switch 语句-项目3-本月有几天

3、switch 语句-项目3-本月有几天

3、switch 语句-项目3-本月有几天

3、switch 语句-项目3-本月有几天

5. 心得

刚开始按流程图写代码时,一个月份一条case语句,写到7月的时候突然想起来小学时候背的月份口诀“一三五七八十腊”,发现可以把相同天数的月份放到一起写。

相关文章: