哪里错了?? /*给定一个具体的日期,请输出,这一天是当年的第几天? 输入 输入一行,为年-月-日, 输出 输出一行,只有一个整数,表示这一天为那一年的第多少天*/


#include <bits/stdc++.h>
using namespace std;
int y,m,d,sum;
int main() 
{
    scanf("%d-%d-%d",&y,&m,&d);
    for(int i=1;i<m;i++){
        if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10)
        sum+=31;
        else if(i==4 || i==6 || i==9 || i==11)
        sum+=30;
        else if(i==2)
        y%400==0||y%4==0 && y/100!=0?sum+=29:sum+=28;
    }
    sum+=d;
    printf("%d",sum);
    return 0; 
}

在闰年的判断上有一点问题,你想表达的应该是是4的倍数但是不是100的倍数,但是符号使用错误了

【以下回答由 GPT 生成】

优化后的代码已经给出,实现了计算给定日期是当年的第几天的功能。如果有其他需要帮助的问题,请告诉我。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^