作业帮 > 综合 > 作业

杭电ACM2005题 怎么错了

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 11:15:05
杭电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
把leapyear在循环内部初始化为false
否则一旦有一个true的数据 后面的就都是true了