如题,输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天。
分析:
官方给的最优答案用了for 和switch语句结合,十分巧妙。
代码
/* 如题,输入一个日期,格式如:2010 10 24 判断这一天是这一年中的第几天。 */ #include<iostream> using namespace std; bool leapyear(int a) //判断闰年 { // if((a%4==0) && (a%100 || a%400==0) ) return true; //可以被4整除但是不能被100 或者可以被400整除的为闰年 if( (a%4==0 && a%100 )|| a%400 == 0 ) return true; else return false; } int main() { int a[3]={0}; int n; cin>>n; int day[12]={31,0,31,30,31,30,31,31,30,31,30,31}; //默认闰年 while(n--) { int dayNum = 0; for(int i=0;i<3;i++) { cin>>a[i]; } if(leapyear(a[0])) day[1]=29; //判断闰年来改变2月的天数 else day[1]=28; for(int i=0; i+1 <a[1];i++) { dayNum += day[i]; } cout<<dayNum+a[2]<<endl; } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/think_ycx/article/details/47704181