傅欽 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 请问如何在openpcdet上对KITTI数据集的测试集进行结果评估?
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错