描述
KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。
输入描述:
多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。
输出描述:
对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。
示例1
输入:
2008 2
输出:
29
思路一:使用 switch语句 进行日期分类
总体思路:
(一).
写一个函数 get_days_of_month返回对应月份天数
函数参数:
int y -- 年份;
int m -- 月份;
使用 switch语句,根据月份返回该月天数:
如果 m(月份),
是 1、3、5、7、8、10、12 月 -- 不论平年还是闰年,该月都有31天,返回31天;
是 4、6、9、11 月 -- 不论平年还是闰年,该月都有30天,返回30天;
如果是 2月 ,则单独判断:
是 平年 则返回 28 天,
是 闰年 则返回 28+1 天,即29天
(二).
主函数:
定义变量:
int y = 0; -- 年份
int m = 0; -- 月份
使用 while循环 进行多组输入:
输入一次就调用一次 get_days_of_month函数返回天数,
获得 返回天数后 ,进行打印
第一步:
写一个函数 get_days_of_month返回对应月份天数:
(1).
函数参数:
int y -- 年份;
int m -- 月份;
(2).
使用 switch语句,根据月份返回该月天数:
如果 m(月份),
是 1、3、5、7、8、10、12 月 -- 不论平年还是闰年,该月都有31天,返回31天;
是 4、6、9、11 月 -- 不论平年还是闰年,该月都有30天,返回30天;
如果是 2月 ,则单独判断:
是 平年 则返回 28 天,
是 闰年 则返回 28+1 天,即29天
实现代码:
#include <stdio.h> //写一个函数返回对应月份天数: int get_days_of_month(int y, int m) { int d = 0; //该年该月天数 //使用 switch循环,根据月份返回该月天数: switch (m) { //1 3 5 7 8 10 12 -- 返回31天 case 1: case 3: case 5: case 7: case 8: case 10: case 12: { d = 31; break; } //4 6 9 11 -- 返回30天 case 4: case 6: case 9: case 11: { d = 30; break; } //2月看平年还是闰年返回天数: case 2: { d = 28; //平年 if ((y%4==0 && y%100!=0) || (y%400==0)) { d += 1; //闰年,28+1天,即29天 } } } return d; //返回天数 } int main() { return 0; }
实现图片:
第二步:
主函数:
(1).
定义变量:
int y = 0; -- 年份
int m = 0; -- 月份
(2).
使用 while循环 进行多组输入:
输入一次就调用一次 get_days_of_month函数返回天数,
获得 返回天数后 ,进行打印
实现代码:
#include <stdio.h> //写一个函数返回对应月份天数: int get_days_of_month(int y, int m) { int d = 0; //该年该月天数 //使用 switch循环,根据月份返回该月天数: switch (m) { //1 3 5 7 8 10 12 -- 返回31天 case 1: case 3: case 5: case 7: case 8: case 10: case 12: { d = 31; break; } //4 6 9 11 -- 返回30天 case 4: case 6: case 9: case 11: { d = 30; break; } //2月看平年还是闰年返回天数: case 2: { d = 28; //平年 if ((y%4==0 && y%100!=0) || (y%400==0)) { d += 1; //闰年,28+1天,即29天 } } } return d; //返回天数 } int main() { //定义变量: int y = 0; //年 int m = 0; //月 //使用while循环,进行多组输入: while (scanf("%d %d", &y, &m) == 2) //输入了 年 和 月 两个变量后就进行获取天数 { //调用函数 get_days_of_month 并获取返回天数: int d = get_days_of_month(y, m); //获取天数后,进行打印: printf("%d\n", d); } return 0; }
实现图片:
思路一:最终代码和实现效果
最终代码:
#include <stdio.h> //写一个函数返回对应月份天数: int get_days_of_month(int y, int m) { int d = 0; //该年该月天数 //使用 switch循环,根据月份返回该月天数: switch (m) { //1 3 5 7 8 10 12 -- 返回31天 case 1: case 3: case 5: case 7: case 8: case 10: case 12: { d = 31; break; } //4 6 9 11 -- 返回30天 case 4: case 6: case 9: case 11: { d = 30; break; } //2月看平年还是闰年返回天数: case 2: { d = 28; //平年 if ((y%4==0 && y%100!=0) || (y%400==0)) { d += 1; //闰年,28+1天,即29天 } } } return d; //返回天数 } int main() { //定义变量: int y = 0; //年 int m = 0; //月 //使用while循环,进行多组输入: while (scanf("%d %d", &y, &m) == 2) //输入了 年 和 月 两个变量后就进行获取天数 { //调用函数 get_days_of_month 并获取返回天数: int d = get_days_of_month(y, m); //获取天数后,进行打印: printf("%d\n", d); } return 0; }
实现效果: