21xrx.com
2024-11-22 07:19:05 Friday
登录
文章检索 我的文章 写文章
递归函数C语言求年龄
2023-06-15 12:44:07 深夜i     --     --
递归函数 C语言 年龄 出生日期 当前日期

递归函数是一种高级编程技术,能够很好地应用于解决复杂的问题。本文介绍如何使用递归函数来求解一个人的年龄。我们要求解的问题是:如果已知某人的出生日期和现在的日期,如何用C语言递归函数求出他的年龄?

首先定义一个递归函数age,传入一个出生日期(用int类型表示),和一个当前日期(同样用int类型表示)。函数的返回值应该是一个整数,表示该人的年龄。

函数的实现过程如下:

- 首先计算出当前年份和出生年份的差值。

- 如果当前月份小于出生月份,则再减去1。

- 如果当前月份等于出生月份,但当前日期小于出生日期,则再减去1。

- 如果当前年份等于出生年份且当前月份等于出生月份且当前日期大于等于出生日期,则返回当前年龄;否则返回当前年龄减去1。

代码如下:


int age(int born, int now) {

  int y1 = born / 10000, m1 = born / 100 % 100, d1 = born % 100;

  int y2 = now / 10000, m2 = now / 100 % 100, d2 = now % 100;

  int a = y2 - y1;

  if (m2 < m1 || (m2 == m1 && d2 < d1))

    a--;

  

  if (y2 == y1 && m2 == m1 && d2 >= d1)

    return a;

   else

    return a - 1;

  

}

接下来就可以在主函数中调用这个函数来求解年龄了,例如:


int main() {

  int born = 19951001;

  int now = 20220313;

  printf("age=%d\n", age(born, now));

  return 0;

}

运行结果为:


age=27

至此,我们就成功地使用了递归函数来求解一个人的年龄。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复