黑马程序员技术交流社区

标题: 计算某日是该年的第几天 [打印本页]

作者: strongfish    时间: 2015-7-15 09:59
标题: 计算某日是该年的第几天
  1. # include <stdio.h>

  2. int main()
  3. {
  4.         int leap(int);  //判断是否是闰年的函数声明;
  5.         int number(int, int, int); //求天数的函数声明;

  6.         int year, month, day;

  7.         while (scanf("%d%d%d", &year, &month, &day) != EOF)  //输入年月日  如 2004 3 1
  8.         {
  9.                 printf("%d年%d月%d日是今年的第%d天!\n", year, month, day, number(year, month, day));  //输出
  10.         }

  11.         return 0;
  12. }

  13. int leap(int year)   //判断平年闰年的函数
  14. {
  15.         if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) return 1;  //判断闰年
  16.         else return 0;
  17. }

  18. int  number(int year, int month, int day) //求天数的函数
  19. {
  20.         int sum = 0;
  21.         int month_p[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  22.         int month_r[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

  23.         if (leap(year)) //是闰年返回1, 不是闰年返回0   0为假  非0为真
  24.         {
  25.                 for (int i = 0; i < month - 1; i++)
  26.                 {
  27.                         sum += month_r[i];
  28.                 }
  29.         }
  30.         else
  31.         {
  32.                 for (int i = 0; i < month - 1; i++)
  33.                 {
  34.                         sum += month_p[i];
  35.                 }
  36.         }

  37.         sum += day;

  38.         return (sum);
  39. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2