给出日期(年月日),计算该日是该年的第几天(需考虑是否是闰年)。
一、判断是否为闰年
判断条件:1)年份被4整除并且不被100整除 ==> year%4==0&&year%100!==0
2)年份可以400整除 ==> year%400
二、代码部分
1.代码示例
代码如下(示例):
1 #include <stdio.h> 2 int main() 3 { 4 int year,month,day; //年月日 5 int all_day=0; //天数 6 int flag=0; //等于1时,是闰年 7 int i; 8 int arrRun[12]={31,29,31,30,31,30,31,31,30,31,30,31}; //闰年 9 int arrNotRun[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //非闰年 10 printf("请输入日期,用空格隔开:"); 11 scanf("%d %d %d",&year,&month,&day); 12 //判断是否为闰年-------------------------------------- 13 if((year%4==0&&year%100!=0)||year/400==0) 14 { 15 printf("闰年--"); 16 flag=1; 17 }else 18 { 19 printf("不是闰年--"); 20 flag=0; 21 } 22 //闰年时的天数------------------------------- 23 if(flag==1) 24 { 25 26 for(i=0;i<month-1;i++) 27 { 28 all_day=all_day+arrRun[i]; 29 } 30 all_day+=day; 31 } 32 //非闰年的天数------------------------------ 33 else 34 { 35 36 for(i=0;i<month-1;i++) 37 { 38 all_day=all_day+arrNotRun[i]; 39 } 40 all_day+=day; 41 } 42 43 printf("现在是%d年的第%d天\n",year,all_day); 44 45 }
2.输出演示
结果(示例):
总结
主要考察了数组遍历和if语句的运用,一定要注意月份和数组下标的关系