这段代码的实现是很简单的,用的就是判断后累加的方法实现的,原理是很简单的。
第几天的计算:比如计算的是11月,先将前十个月的天数计算并相加起来,除了二月的天数闰年会有所不同外,其他的都是一样的,其次就是将输入的天数加上就可以了。
剩余多少天的计算:先将输入进去的这一年的总天数计算出来,再减去上面计算出的第几天就可以了。
这道题其实主要考的还是闰年的相关计算方法,
判断任意年份是否为闰年,需要满足以下条件中的任意一个:
① 该年份能被 4 整除同时不能被 100 整除;
② 该年份能被400整除。
大家可以去看一下我之前的闰年计算方法
C语言判断闰年,输入年判断并打印是否闰年_Eliauk1234的博客-CSDN博客
#include <stdio.h>
int main(int argc, char *argv[])
{
int feb,y,m,d,day,sur,total;
printf("输入格式例:2021 11 18\n");
scanf("%d%d%d",&y,&m,&d);
if(y%4==0&&y%100!=0||y%400==0)
{
feb=29;
total=366;
}
else
{
feb=28;
total=365;
}
if(m==1) day=d;
else if(m==2) day=31+d;
else if(m==3) day=31+feb+d;
else if(m==4) day=31+feb+31+d;
else if(m==5) day=31+feb+31+30+d;
else if(m==6) day=31+feb+31+30+31+d;
else if(m==7) day=31+feb+31+30+31+30+d;
else if(m==8) day=31+feb+31+30+31+30+31+d;
else if(m==9) day=31+feb+31+30+31+30+31+31+d;
else if(m==10) day=31+feb+31+30+31+30+31+31+30+d;
else if(m==11) day=31+feb+31+30+31+30+31+31+30+31+d;
else if(m==12) day=31+feb+31+30+31+30+31+31+30+31+30+d;
sur=total-day;
printf("今天是%d年的第 %d 天,距离今年结束还有 %d 天\n",y,day,sur);
return 0;
}
C语言万年历,C语言趣味程序
我是虎哥,大家多学习多交流