#include<stdio.h>
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;
}
看下吧,看一下,看看呢
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
XJSFDX_Ali 2022-10-29 20:34关注你把判断语句改成这行语句试试
(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; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录