c++编程输入某年某月某日,判断这一天是这一年的第几天.

我自己写的
#include<iostream>
using namespace std;
void main()
{ int a,b,c,d;
cout<<"请输入年,月,日"<<endl;
cin>>a>>b>>c;
d=0;
switch(b)
{
case12:d=d+c+30;
case11:d=d+c+31;
case10:d=d+c+30;
case9:d=d+c+31;
case8:d=d+c+31;
case7:d=d+c+30;
case6:d=d+c+31;
case5:d=d+c+30;
case4:d=d+c+30;
case3:
if((a%4==0&&a%100!=0)||(a%400==0))
d=d+c+29;
else
d=d+c+28;
case2:d=d+c+31;
case1:d=d+c;
}
cout<<"为这一年的第"<<d<<"天"<<endl;
}
为什么最后解决方案出来的总是d=0?

#include <iostream>
using namespace std;
int main()
{
    int day=0;      // 日期
    int month=0;    // 月份
    int year=0;     // 年份
int sum=0;      // 一年中的第几天
cin>>year>>month>>day;
//write your own codes
    int m=0;
    if(year%4==0&&year%100!=0||year%400==0)m=29;//闰年二月份29天
    else m=28;
    switch (month)
    {
    case 12:sum+=30;   
    case 11:sum+=31;
    case 10:sum+=30;
    case 9:sum+=31;        //如果是某个月,则加上前一个月份的所有天数;
    case 8:sum+=31;
    case 7:sum+=30;
    case 6:sum+=31;
    case 5:sum+=30;
    case 4:sum+=31;
    case 3:sum+=m;
    case 2:sum+=31;
    case 1:sum+=day;         //最后加上这个月的天数;
    }
    cout<<sum;    
    return 0;
}
//也可以在每条case语句里直接算出天数,不过要记得加上break语句

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-04-28

关键字case后面留个空格哈:

#include<iostream>
using namespace std;
void main()
{
int a, b, c, d;
cout << "请输入年,月,日" << endl;
cin >> a >> b >> c;
d = 0;
switch (b)
{
case 12:d = d + c + 30;
case 11:d = d + c + 31;
case 10:d = d + c + 30;
case 9:d = d + c + 31;
case 8:d = d + c + 31;
case 7:d = d + c + 30;
case 6:d = d + c + 31;
case 5:d = d + c + 30;
case 4:d = d + c + 30;
case 3:
if ((a % 4 == 0 && a % 100 != 0) || (a % 400 == 0))
d = d + c + 29;
else
d = d + c + 28;
case 2:d = d + c + 31;
case 1:d = d + c;
}
cout << "为这一年的第" << d << "天" << endl;
}

本回答被提问者采纳
第2个回答  2019-08-08
你没敲错我这个就没毛病哦 我运行过的
运行环境 gcc vc6.0
#include <iostream>

using namespace std;

main()
{
cout<<"请输入年、月、日"<<endl;
int year,month,day,sum=0;//定义年月日及天数
cin>>year;
cin>>month;
cin>>day;//输入

switch (month)
{
case 1:
sum=day;break;
case 2:
sum=day+31;
break;
case 3:

sum=day+59;
break;
case 4:
sum=day+90;
break;
case 5:
sum=day+120;
break;
case 6:
sum=day+151;
break;
case 7:
sum=day+181;
break;
case 8:
sum=day+212;
break;
case 9:
sum=day+243;
break;
case 10:
sum=day+273;
break;
case 11:
sum=day+304;
break;
case 12:
sum=day+334;
break;
}
if(((year%4==0&&year%100!=0)||year%400==0)&&month>=3)
{

sum=sum+1;

}//如果是闰年,那么三月及以后月份计算时+1,(非闰年2月28天,闰年29天)
cout<<sum<<endl;

}
第3个回答  2020-12-01
#include<stdio.h>
#include<stdlib.h>
int main() {
int year, month, day, look = 0, day1 = 0;
printf("请输入日期:");
scanf_s("%d,%d,%d",&year, &month,&day);
if ((year % 400 == 0) || (year % 100 == 0) && (year % 4 != 0))
look = 1;
switch(month)
{
case 2:day1 = 31; break;
case 3:day1 = 59; break;
case 4:day1 = 90; break;
case 5:day1 = 120; break;
case 6:day1 = 151; break;
case 7:day1 = 181; break;
case 8:day1 = 212; break;
case 9:day1 = 243; break;
case 10:day1 = 273; break;
case 11:day1 = 303; break;
case 12:day1 = 334; break;
}
if (look)
day1 += day + 1;
else
day1 += day;
printf("%d年%d月%d日是这一年的第%d天\n", year, month, day, day1);
system("pause");
return 0;

}

c++编程输入某年某月某日,判断这一天是这一年的第几天.
include <iostream>using namespace std;int main(){ int day=0; \/\/ 日期 int month=0; \/\/ 月份 int year=0; \/\/ 年份int sum=0; \/\/ 一年中的第几天cin>>year>>month>>day;\/\/write your own codes int m=0; if(year%4==0&&year%100!=0||year%400...

C语言问题
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊 情况,闰年且输入月份大于3时需考虑多加一天。 2.程序源代码: main() { int day,month,year,sum,leap; printf("\\nplease input year,month,day\\n"); scanf("%d,%d,%d",&year,&month,&day); switch(month...

求C++程序 题目:输入某年某月某日,判断这一天是这一年的第几天?
} cout<<year<<"-"<<month<<"-"<<day<<"是今年的第"<<sum<<endl;} 望楼主采纳。。

C++能输入某年某月某日 输出是该年的第几天星期几的代码
if(p2>12||p3>a[p2-1])cout<<"您的输入有误!"<<endl;else n.set(p1,p2,p3);cout<<"这天是该年的第"<<days(n)<<"天。"<<endl;cout<<"这之间相隔"<<days(n)-days(m)<<"天."<<endl;return 0;} int days(date k){int i,c=0;for(i=0;i<k.month-1;i++)c+=a[...

输入某年某月某日,判断这一天是这一年的第几天 用if函数C++怎么编程
c + 30;case 4:d = d + c + 30;case 3:if ((a % 4 == 0 && a % 100 != 0) || (a % 400 == 0))d = d + c + 29;else d = d + c + 28;case 2:d = d + c + 31;case 1:d = d + c;} cout << "为这一年的第" << d << "天" << endl;} ...

...输入某年某月某日,计算出这一天是该年的第几天? 例如以2010_百度知 ...
if(year%4==0&&year%100!=0)\/\/判断该年是否是闰年 February=29;else February=28;if(day<=31)switch(month){ case 1:if(month==1)x=day;printf("今天是本年的第%d天\\year",x);break;case 2:if(month==2)x=31+day;printf("今天是本年的第%d天\\year",x);break;case 3:if(month...

输入某年某月某日时距今年今月今日一共过了多少天?C++
"这里写你的日期比如:20151212","%Y%m%d",tmp_time); time_t t1 = mktime(tmp_time); time_t t2 = time(NULL); time_t tt=t2-t1; int tday=tt\/3600\/24; printf("%d",tday); 需要包含time.h c++中可能是ctime.h ...

用c++ 年历显示
1)计算从1990年1月1日开始至指定日期共有多少天;2)由于"打鱼"和"晒网"的周期为5天,所以将计算出的天数用5去除;3)根据余数判断他是在"打鱼"还是在"晒网";若余数为0,1,2,则他是在"打鱼";否则是在"晒网"。在这三步中,关键是第一步。求从1990年1月1日至指定日期有多少天,要判断...

一个C++问题 从2000.1.1 周一开始,输入一个整数,输出这么多天后的日期和...
int DisplayYear( int year );\/\/显示某一年的日历 void addDay(int &year, int &month, int &day, const int &addnum); \/\/某年某月某日+addnum天后 void Increment(int &year, int &month, int &day);\/\/增加一天 private :int SpaceSize; \/\/ 输出长度 setw()大小 bool IsLeapYear(...

c++程序 某年某月某日是星期几(必须用C++语言编写)
\/400-40+c;cout<<year<<"年"<<month<<"月"<<day<<"日是"<<str[(int)s%7]<<endl;} int main(){ cout<<"输入年:";cin>>year;cout<<endl;cout<<"输入月:";cin>>month;cout<<endl;cout<<"输入日:";cin>>day;cout<<endl;DaySearch();system("pause");return 0;} ...

相似回答