题目id 6028

题目: 【题目描述】

输入一个日期,计算当年经过的天数并输出。

【输入描述】

3个正整数,代表年、月、日

【输出描述】

1个整数,代表经过的天数

【样例输入1】

2022 2 1

【样例输出1】

32

【样例输入2】

2022 12 31

【样例输出2】

365

哪里错了?
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
if(a%400==0||a%100!=0&&a%4==0){
if(b==1){
cout<<c;
}else if(b==2){
cout<<31+c;
}else if(b==3){
cout<<60+c;
}else if(b==4){
cout<<91+c;
}else if(b==5){
cout<<121+c;
}else if(b==6){
cout<<152+c;
}else if(b==7){
cout<<182+c;
}else if(b==8){
cout<<213+c;
}else if(b==9){
cout<<244+c;
}else if(b==10){
cout<<274+c;
}else if(b==11){
cout<<305+c;
}else if(b==12){
cout<<335+c;
}else{
cout<<366;
}
}
else{
if(a==1){
cout<<c;
}else if(b==2){
cout<<31+c;
}else if(b==3){
cout<<59+c;
}else if(b==4){
cout<<90+c;
}else if(b==5){
cout<<120+c;
}else if(b==6){
cout<<151+c;
}else if(b==7){
cout<<181+c;
}else if(b==8){
cout<<212+c;
}else if(b==9){
cout<<243+c;
}else if(b==10){
cout<<273+c;
}else if(b==11){
cout<<304+c;
}else if(b==12){
cout<<334+c;
}else{
cout<<365;
}
}
return 0 ;
}

1 个赞

呃呃,亲建议格式化代码一下再发哦

后面的else输出没有必要,可以删去

#include <bits/stdc++.h>
using namespace std;
int year,month,day,sum;
int flag;
int main()
{
cin>>year>>month>>day;

if(year%400==0||(year%4==0 && year%100!=0)){
    flag=1;
}

for(int i=1;i<month;i++){
    if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
        sum+=31;
    }else if(i==4||i==6||i==9||i==11){
        sum +=30;
    }else if(i==2 && flag==1){
        sum+=29;
    }else if(i==2 && flag==0){
        sum+=28;
    }
}

sum +=day;
cout<<sum;
return 0;
}
2 个赞