m0_74438799 2022-10-29 20:17 采纳率: 92.9%
浏览 39
已结题

看下吧,看一下,看看呢

#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+=31
2+c+30;
break;
case 5:d+=313+c+30;
break;
case 6:d+=31
3+c+302;
break;
case 7:d+=31
4+c+302;
break;
case 8:d+=31
5+c+302;
break;
case 9:d+=31
5+c+303;
break;
case 10:d+=31
6+c+303;
break;
case 11:d+=31
6+c+304;
break;
case 12:d+=31
7+c+30*4;
break;
}
printf("%d",d);
return 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;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月14日
  • 已采纳回答 11月6日
  • 创建了问题 10月29日

悬赏问题

  • ¥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)