#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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)