#include
int main()
{
int y,m,d,c;
scanf("%4d/%2d/%2d",&y,&m,&d);
if(y%4==0&&y%100!=0||y取余400==0)
{
printf("%d",c=29);
}
else
{
printf("%d",c=28);
}
switch(m)
{
case 1:d+=31;
break;
case 2:d+=31+c;
break;
case 3:d+=312+c;
break;
case 4:d+=312+c+30;
break;
case 5:d+=313+c+30;
break;
case 6:d+=313+c+302;
break;
case 7:d+=314+c+302;
break;
case 8:d+=315+c+302;
break;
case 9:d+=315+c+303;
break;
case 10:d+=316+c+303;
break;
case 11:d+=316+c+304;
break;
case 12:d+=317+c+30*4;
break;
}
printf("%d",d);
return 0;
}
你把判断语句改成这行语句试试
(y%400==0||(y%4==0&&y%100!=0)
还有几个地方有问题,参考一下这个
https://blog.csdn.net/m0_66411584/article/details/127542756?spm=1001.2014.3001.5502
#include<stdio.h>
int main()
{
int y,m,d,n=0;
int c,b=0;
scanf("%d %d %d",&y,&m,&d);
while(b<m){
switch(b){
case 0:c=d;break;
case 1:c=31;break;
case 2:c=29;break;
case 3:c=31;break;
case 4:c=30;break;
case 5:c=31;break;
case 6:c=30;break;
case 7:c=31;break;
case 8:c=31;break;
case 9:c=30;break;
case 10:c=31;break;
case 11:c=30;break;
case 12:c=31;break;
}
n=n+c;
b++;
}
if((y%400==0||(y%4==0&&y%100!=0))&&m>2) //是闰年且月份大于2方加一
n++;
printf("%d-%d-%d是第%d天\n",y,m,d,n);
return 0;
}