C语言练习之计算某年日是该年的第几天

  最近练习C语言时,发现这道编程题综合了平年闰年的判断以及数组的知识

感觉有必要记录一下,所以自己编写了这样的程序。编译器必须要说明一下,关于

C语言练习这个章节,笔者使用VS2015编译器(因为好多大神,经常忘了描述他们的编译环境,有时候用他们的代码,编译无法通过)

 1 #include <stdio.h>
 2 
 3 
 4 //计算某日是该年的第几天
 5 //1.判断平年闰年
 6 //2.定义平年和闰年数组
 7 
 8 int leap(int year);
 9 int Sum_Day(int year, int month, int day);
10 
11 int main(int argc, char *argv) {
12     int year, month, day;
13     int sum;
14     scanf("%d%d%d",&year,&month,&day);
15     printf("%d
",Sum_Day(year,month,day));
16 
17 }
18 
19 
20 int leap(int year) {
21     if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
22     {
23         return 1;
24     }
25     else {
26         return 0;
27     }
28 }
29 
30 int Sum_Day(int year, int month, int day) {
31     int Lyear[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
32     int Nyear[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
33     int sum=0;
34     if (leap(year)) {
35         for (int i = 0; i < month - 1; i++) {
36             sum += Lyear[i];
37         }
38     }
39     else
40     {
41         for (int i = 0; i < month - 1; i++) {
42             sum += Nyear[i];
43         }
44     }
45 
46     return sum+day;
47 }

效果如下:

C语言练习之计算某年日是该年的第几天