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

简介: 思路二:用数组存储各月的日期总体思路:(一).写一个函数 get_days_of_month 返回对应月份天数:

思路二:用数组存储各月的日期

总体思路:

(一).

写一个函数 get_days_of_month  返回对应月份天数

定义天数变量

int d = 0; -- 天数

         

定义一个数组存放 一年12个月的天数        

int days[ ] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };

下标0的元素随便放一个数,让1月下标为12月下标为2以此类推

       

传进来的月份对应数组中的该月份下标

d = days[m];

         

数组中的二月是28天,是平年的,

判断 int y 是不是闰年m 是不是二月

是则 d += 1;  即 29 天

返回天数 d

           

(二).

主函数 和 思路一 一样

       

第一步:

写一个函数 get_days_of_month  返回对应月份天数

       

(1).

定义天数变量

int d = 0; -- 天数

             (2).

定义一个数组存放 一年12个月的天数

int days[ ] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };

下标0的元素随便放一个数,让1月下标为12月下标为2以此类推

(3).

传进来的月份对应数组中的该月份下标

d = days[m];

         

(4).          

数组中的二月是28天,是平年的,

判断 int y 是不是闰年m 是不是二月

是则 d += 1;  即 29 天

       

(5).

返回天数 d

                   

实现代码:

#include <stdio.h>
//写一个函数 get_days_of_month 返回对应月份天数:
int get_days_of_month(int y, int m)
{
  //定义天数变量:
  int d = 0;
  //定义一个数组(平年),存放一年12个月的天数:
  int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
  // 下标(月份) 0  1  2  3  4  5  6  7  8  9 10 11 12
  //让传进来的月份对应数组中的该年份下标:
  d = days[m];
  //判断是不是闰年的二月:
  if (((y%4==0 && y%100!=0) || (y%400==0)) && m==2)
    //如果是 闰年,并且是 二月  
  {
    d += 1; //在数组中平年二月28天的基础上+1变成29天
  }
  //返回天数:
  return d;
}
int main()
{
  return 0;
}

实现图片:

image.png

第二步:

主函数 和 思路一 一样

                   

实现代码:

#include <stdio.h>
//写一个函数 get_days_of_month 返回对应月份天数:
int get_days_of_month(int y, int m)
{
  //定义天数变量:
  int d = 0;
  //定义一个数组(平年),存放一年12个月的天数:
  int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
  // 下标(月份) 0  1  2  3  4  5  6  7  8  9 10 11 12
  //让传进来的月份对应数组中的该年份下标:
  d = days[m];
  //判断是不是闰年的二月:
  if (((y%4==0 && y%100!=0) || (y%400==0)) && m==2)
    //如果是 闰年,并且是 二月  
  {
    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>
//写一个函数 get_days_of_month 返回对应月份天数:
int get_days_of_month(int y, int m)
{
  //定义天数变量:
  int d = 0;
  //定义一个数组(平年),存放一年12个月的天数:
  int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
  // 下标(月份) 0  1  2  3  4  5  6  7  8  9 10 11 12
  //让传进来的月份对应数组中的该年份下标:
  d = days[m];
  //判断是不是闰年的二月:
  if (((y%4==0 && y%100!=0) || (y%400==0)) && m==2)
    //如果是 闰年,并且是 二月  
  {
    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;
}

实现效果:

0c94690a6c0c49d3a3c7e59ae731c6dc.png

相关文章
|
C语言 Windows
【初阶C语言】关于scanf函数的超详细介绍和多组输入
【初阶C语言】关于scanf函数的超详细介绍和多组输入 我们学习一个函数,要围绕三个点:1.函数是什么 2.函数的用法 3.注意的细节
704 0
|
6月前
|
C语言
C语言-----多组输入,一个整数(1~100),表示线段长度,即“*”的数量
C语言-----多组输入,一个整数(1~100),表示线段长度,即“*”的数量
|
7月前
|
Unix 编译器 Linux
C语言多组输入
C语言多组输入
234 0
|
7月前
|
C语言
多组数据的输入方法(c语言实现)
多组数据的输入方法(c语言实现)
|
编译器 C语言 C++
C语言--多组输入类题目
C语言--多组输入类题目
63 0
|
C语言
C语言:多组输入和getchar函数(2)
C语言:多组输入和getchar函数
|
C语言
C语言:多组输入和getchar函数(1)
C语言:多组输入和getchar函数
|
编译器 C语言
C语言的多组输入
多组输入常见于OJ题中,理解多组输入首先要区分于输入 输入:输入一组数据,程序结束运行 多组输入:输入一组数据,程序不会结束运行,而是会接收更多组的数据
163 0
|
C语言
【C语言初学必看】之多组输入的玄机
【C语言初学必看】之多组输入的玄机
|
C语言
C语言:获得月份天数(多组输入)-1
描述 KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。 输入描述: 多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。 输出描述:
260 0