傅欽 2022-11-06 22:53 采纳率: 100%
浏览 29
已结题

根据用户选择实现日期天数互转的代码问题

在代码第一部分运行日期转换天数的时候没有问题,但第二部分天数转日期的时候运行报错

#include<stdio.h>
int main()
{
    int a;
    printf("请选择你想要的转换类型(输入1或2):\n1.日期转换成天数;\n2.指定年份和第几天求出日期。\n");
    scanf("%d",&a);
    if(a==1)
{
    int n,y,r,x=0;
    printf("请输入年\n");
    scanf("%d",&n);
    printf("月 \n");
    scanf("%d",&y);
    printf("日 \n");
    scanf("%d",&r);
    switch(y-1)
    {
        case 11:x+=30;
        case 10:x+=31;
        case 9:x+=30;
        case 8:x+=31;
        case 7:x+=31;
        case 6:x+=30;
        case 5:x+=31;
        case 4:x+=30;
        case 3:x+=31;
        case 2:
        if((n%4==0&&n%100!=0)||n%400==0)
            {
           x+=29;
        }
        else
            {
           x+=28;
        }
        case 1:x+=31;
        case 0:x=x;
    }
    x+=r;
    printf("该日期是%d年的第%d天",n,x);
}
else(a==2){
        int n,r;
        printf("请输入年\n");
        scanf("%d",&n);
        printf("天数\n");
        scanf("%d",&r);
            if((n%4==0&&n%100!=0)||n%400==0)
            {
                 if(r<=31)
                 {
                 y=1;
                 m=r;
                 }
                 else if(31<r&&r<=60)
                 {
                 y=2;
                 m=r-31;
                 }
                 else if(60<r&&r<=91)
                 {
                 y=3;
                 m=r-60;
                 }
                 else if(91<r&&r<=121)
                 {
                 y=4;
                 m=r-91;
                 }
                 else if(121<r&&r<=152)
                 {
                 y=5;
                 m=r-121;
                 }
                 else if(152<r&&r<=182)
                 {
                 y=6;
                 m=r-152;
                 }
                 else if(182<r&&r<=213)
                 {
                 y=7;
                 m=r-182;
                 }
                 else if(213<r&&r<=244)
                 y=8;
                 m=r-213;
                 }
                 else if(244<r&&r<=274)
                 {
                 y=9;
                 m=r-244;
                 }
                 else if(274<r&&r<=305)
                 {
                 y=10;
                 m=r-274;
                 }
                 else if(305<r&&r<=335)
                 {
                 y=11;
                 m=r-305;
                 }
                 else if(335<r&&r<=366)
                 {
                 y=12;
                 m=r-335;
                 }
                 printf("日期为%d月%d日%d\n",y,m);
      }
            else if(!(n%4==0&&n%100!=0)||n%400==0)
      {
                 if(r<=31)
                 {
                 y=1;
                 m=r;
                 }
                 else if(31<r&&r<=59)
                 {
                 y=2;
                 m=r-31;
                 }
                 else if(59<r&&r<=90)
                 {
                 y=3;
                 m=r-59;
                 }
                 else if(90<r&&r<=120)
                 {
                 y=4;
                 m=r-90;
                 }
                 else if(120<r&&r<=151)
                 {
                 y=5;
                 m=r-120;
                 }
                 else if(151<r&&r<=181)
                 {
                 y=6;
                 m=r-151;
                 }
                 else if(181<r&&r<=212)
                 {
                 y=7;
                 m=r-181;
                 }
                 else if(212<r&&r<=243)
                 y=8;
                 m=r-212;
                 }
                 else if(243<r&&r<=273)
                 {
                 y=9;
                 m=r-243;
                 }
                 else if(273<r&&r<=304)
                 {
                 y=10;
                 m=r-273;
                 }
                 else if(304<r&&r<=334)
                 {
                 y=11;
                 m=r-304;
                 }
                 else if(334<r&&r<=365)
                 {
                 y=12;
                 m=r-334;
                 }
                 printf("日期为%d月%d日%d\n",y,m);
}
}
}
    return 0;
}

这里是运行结果及报错内容

img

共八处报错

希望可以得到解决,使程序顺利运行w

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-11-06 23:24
    关注
    else(a==2)
    改为:
    else if(a==2)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 11月6日

悬赏问题

  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 three.js添加后处理以后模型锯齿化严重
  • ¥15 vite打包后,页面出现h.createElement is not a function,但本地运行正常