问题:输入年份和月份,返回该月份的天数
我们都知道1月31天,2月28天或者29天,3月31天,4月30天,5月31天,6月30天,7月30天,8月31天,9月30天,10月31天,11月30天,12月30天,5月31天。
这其中只有二月是不确定的,是需要判断是否是闰年,来确定,闰年二月就是29天,反之28天
闰年的规则:年份满足能够整除4并且不能够整除100,还有能够整除400,这样的年份就是闰年
了解了规则后,我们来看看代码
1. #include<stdio.h> 2. int main() 3. { 4. int y=0; 5. int x=0; 6. int count=0; 7. int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//为了让数组下标,和月份一致,所以初始化了13个数 8. printf("请输入年份和月份\n"); 9. while(scanf("%d %d",&y,&x)!=EOF)//可以一直输入 10. { 11. if(count!=0) 12. { 13. printf("请输入年份和月份\n"); 14. } 15. count++; 16. int day=days[x]; 17. if(((y%4==0&&y%100!=0)||y%400==0)&&x==2) 18. { 19. day++; 20. } 21. printf("%d年%d月有%d天\n",y,x,day); 22. } 23. return 0; 24. }