大家帮忙看看这个程序有问题没 谢谢了
求某天是某年的第几天问题输入某年某月某日,然后算出这是这一年的第几天,比如输入2007 1 3 然后输出是 第三天 3
我的思路是先判断是否闰年,然后再根据是哪个月的 然后再求出是第几天 不知道下面这个程序还有没考虑到的地方没 ,望大家帮忙看看 谢谢了 本人初学c
# include <iostream>
using namespace std;
class srsj
{
public:
int in()
{
int a,b,c,i,n;
cin>>n;
for (i=1;i<=n;i++)
{
cin>>a>>b>>c;
if ((a%4==0 && a%100!=0) || a%400==0) //判断是否闰年
{
if (b<2)
cout<<c;
else if (b>=2&&b<=3)
cout<<(b-2)*28+31+c<<endl;
else if (b>3&&b<=5)
cout<<(92+(b-4)*30+c)<<endl;
else if (b>5&&b<=7)
cout<<(153+(b-6)*30+c)<<endl;
else if (b==8)
cout<<(214+c)<<endl;
else if (b>8&&b<=10)
cout<<(245+(b-9)*30+31)<<endl;
else if (b>10&&b<=12)
cout<<(306+(b-11)*30+31)<<endl;
}
else
{
if (b<2)
cout<<c;
else if (b>=2&&b<=3)
cout<<(b-2)*30+31+c<<endl;
else if (b>3&&b<=5)
cout<<(92+(b-4)*30+c)<<endl;
else if (b>5&&b<=7)
cout<<(153+(b-6)*30+c)<<endl;
else if (b==8)
cout<<(214+c)<<endl;
else if (b>8&&b<=10)
cout<<(245+(b-9)*30+31)<<endl;
else if (b>10&&b<=12)
cout<<(306+(b-11)*30+31)<<endl;
}
}
return 0;
}
}pd;
int main ()
{
pd.in();
return 0;
}
[ 本帖最后由 续写回忆 于 2012-10-21 17:04 编辑 ]