C语言:获得月份天数(多组输入)-1

简介: 描述KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。 输入描述:多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。 输出描述:

描述

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;
}

实现图片:

image.png

第二步:

主函数:

       

(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;
}

实现图片:


image.png

思路一:最终代码和实现效果

最终代码:

#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;
}

实现效果:

fa31c2c012194a7fb04544ab987a5794.png

相关文章
|
C语言 Windows
【初阶C语言】关于scanf函数的超详细介绍和多组输入
【初阶C语言】关于scanf函数的超详细介绍和多组输入 我们学习一个函数,要围绕三个点:1.函数是什么 2.函数的用法 3.注意的细节
619 0
|
5月前
|
C语言
C语言-----多组输入,一个整数(1~100),表示线段长度,即“*”的数量
C语言-----多组输入,一个整数(1~100),表示线段长度,即“*”的数量
|
6月前
|
Unix 编译器 Linux
C语言多组输入
C语言多组输入
202 0
|
6月前
|
C语言
多组数据的输入方法(c语言实现)
多组数据的输入方法(c语言实现)
|
12月前
|
编译器 C语言 C++
C语言--多组输入类题目
C语言--多组输入类题目
54 0
|
12月前
|
C语言
C语言:多组输入和getchar函数(2)
C语言:多组输入和getchar函数
|
12月前
|
C语言
C语言:多组输入和getchar函数(1)
C语言:多组输入和getchar函数
|
编译器 C语言
C语言的多组输入
多组输入常见于OJ题中,理解多组输入首先要区分于输入 输入:输入一组数据,程序结束运行 多组输入:输入一组数据,程序不会结束运行,而是会接收更多组的数据
152 0
|
C语言
【C语言初学必看】之多组输入的玄机
【C语言初学必看】之多组输入的玄机
|
存储 C语言
C语言:获得月份天数(多组输入)-2
思路二:用数组存储各月的日期 总体思路: (一). 写一个函数 get_days_of_month 返回对应月份天数:
120 0