杭电ACM2005题 怎么错了给定一个日期,输出这个日期是该年的第几天. Input输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的.
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 21:00:35
杭电ACM2005题 怎么错了给定一个日期,输出这个日期是该年的第几天. Input输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的.
杭电ACM2005题 怎么错了
给定一个日期,输出这个日期是该年的第几天.
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的.
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天.
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
Author
lcy
Source
C语言程序设计练习(一)
Recommend
JGShining
这是题目
#include
using namespace std;
int main(){
int year,month,day;
int res;
char a;
bool leapyear =false;
while(cin>>year>>a>>month>>a>>day){
//判断是否为闰年
if(((year%4==0)&&(year&100!=0))||(year%400==0)){
leapyear = true;
}
switch(month){
case 1:
res = day;
break;
case 2:
res = 31+day;
break;
case 3:
res = 31+28+day;
break;
case 4:
res = 31+28+31+day;
break;
case 5:
res = 31+28+31+30+day;
break;
case 6:
res = 31+28+31+30+31+day;
break;
case 7:
res = 31+28+31+30+31+30+day;
break;
case 8:
res = 31+28+31+30+31+30+31+day;
break;
case 9:
res = 31+28+31+30+31+30+31+31+day;
break;
case 10:
res = 31+28+31+30+31+30+31+31+30+day;
break;
case 11:
res = 31+28+31+30+31+30+31+31+30+31+day;
break;
case 12:
res = 31+28+31+30+31+30+31+31+30+31+30+day;
break;
}
if(leapyear==true){
if(month>2){
res +=1;
}
}
cout
杭电ACM2005题 怎么错了给定一个日期,输出这个日期是该年的第几天. Input输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的.
把leapyear在循环内部初始化为false
否则一旦有一个true的数据 后面的就都是true了