c++天数计算问题
答案:4 悬赏:80
解决时间 2021-03-24 06:27
- 提问者网友:我稀罕你
- 2021-03-23 20:23
#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;
}
二月份算法有问题。。。请教如何纠正
上面的加了,算不出真是天数了- -。。。请教
最佳答案
- 二级知识专家网友:有钳、任性
- 2021-03-23 21:55
不是二月算法问题,而是你的逻辑有问题:
每个月累加的应该是前一个月的天数,而不是本月的天数。
这样改一下就对了:
#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;
}
全部回答
- 1楼网友:绝望伪装
- 2021-03-23 23:09
一个思路:
#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:"<
我要举报
大家都在看
推荐资讯