#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 生成】
优化后的代码已经给出,实现了计算给定日期是当年的第几天的功能。如果有其他需要帮助的问题,请告诉我。
【相关推荐】