中易网

c++天数计算问题

答案:4  悬赏:80  
解决时间 2021-03-24 06:27
#include
using namespace std;
int main()
{
int year,mouth,day,days;
cout<<"请输入年,月,日:";
cin>>year>>mouth>>day;
days=day;
switch(mouth)
{
case 12:days=days+31;
case 11:days=days+30;
case 10:days=days+31;
case 9:days=days+30;
case 8:days=days+31;
case 7:days=days+31;
case 6:days=days+30;
case 5:days=days+31;
case 4:days=days+30;
case 3:days=days+31;
case 2:if((year%4==0 && year%100!=0)|| year%400==0)
{
days=days+29;
}
else days=days+28;
case 1:days=days;
cout<<"days:"< default:cout<<"error!"< }
return 0;
}
二月份算法有问题。。。请教如何纠正

上面的加了,算不出真是天数了- -。。。请教
最佳答案
不是二月算法问题,而是你的逻辑有问题:

每个月累加的应该是前一个月的天数,而不是本月的天数。

这样改一下就对了:

#include
using namespace std;
int main()
{
int year,mouth,day,days;
cout<<"请输入年,月,日:";
cin>>year>>mouth>>day;
days=day;
switch(mouth)
{
case 12:days=days+30;
case 11:days=days+31;
case 10:days=days+30;
case 9:days=days+31;
case 8:days=days+31;
case 7:days=days+30;
case 6:days=days+31;
case 5:days=days+30;
case 4:days=days+31;
case 3:if((year%4==0 && year%100!=0)|| year%400==0)
{
days=days+29;
}
else days=days+28;
case 2:days=days+31;
case 1:days=days;
cout<<"days:"< default:cout<<"error!"< }
return 0;
}
全部回答
一个思路: #include int day[11]={31,28,31,30,31,30,31,31,30,31,30}; int gettheday(int month) { int allday=0; for(int i=0;i
  • 2楼网友:绝望伪装
  • 2021-03-23 22:51
我运行了一下,发现没问题,不知道你运行的环境是什么,VC不是C++标准运行环境。你建议你用微软件的visual studio控制台环境或dev
  • 3楼网友:晚安听书人
  • 2021-03-23 22:35
#include using namespace std; int main() { int year,mouth,day,days; cout<<"请输入年,月,日:"; cin>>year>>mouth>>day; days=day; switch(mouth) { case 12:days +=30;//12月份,应该是前11月份的总天数+当前日期 case 11:days +=31; case 10:days +=30; case 9: days +=31; case 8: days +=31; case 7: days +=30; case 6: days +=31; case 5: days +=30; case 4: days +=31; case 3: if((year%4==0 && year%100!=0)|| year%400==0) { days += 29; } else days +=28; case 2: days +=31; case 1: cout<<"days:"<
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯