BUG小白BUG 2022-10-10 19:01 采纳率: 88.9%
浏览 60
已结题

if else用法if进行后else还进行了

为什么我if判断完闰年之后。和他对应的else,还是进行了。

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a, b, c;
    /*scanf("%d-%d-%d", &a, &b, &c);*/
    a = 2000; b = 12; c = 30;
    if ((a % 4 == 0 && a % 100 != 0) || (a % 400 == 0))//是闰年
    {
        if (b == 1 || b == 3 || b == 5 || b == 7 || b == 8 || b == 10 || b == 12)
        {
            if (c + 5 <= 31)//未超过本月份天数
            {
                c += 5;
            }
            else//超过本月份天数
            {
                b += 1;
                if (b > 12)
                {
                    a += 1;
                    b = 1;
                }
                c = 5 - (31 - c);
            }
        }
        if (b == 2)
        {
            if (c + 5 <= 29)//未
            {
                c += 5;
            }
            else//超
            {
                b += 1;
                c = 5 - (29 - c);
            }
        }
        else
        {
            if (c + 5 <= 30)//未
            {
                c += 5;
            }
            else//超
            {
                b += 1;
                c = 5 - (30 - c);
            }
        }
    }
    
    else//不是闰年
    {
        if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
        {
            if (c + 5 <= 31)//未超过本月份天数
            {
                c += 5;
            }
            else//超过本月份天数
            {
                b += 1;
                if (b>12)
                {
                    a += 1;
                    b = 1;
            
                }
                    c = 5 - (31 - c);
            }
        }
        if(b==2)
        {
            if (c + 5 <= 28)//未
            {
                c += 5;
            }
            else//超
            {
                b += 1;
                c = 5 - (28 - c);
            }
        }
        else
        {
            if (c + 5 <= 30)//未
            {
                c += 5;
            }
            else//超
            {
                b += 1;
                c = 5 - (30 - c);
            }
        }
    }
    printf("%d年%d月%d日", a, b, c);
    return 0;
}

  • 写回答

3条回答 默认 最新

  • lzl2040 新星创作者: 人工智能技术领域 2022-10-10 19:09
    关注

    那个没有运行吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月18日
  • 已采纳回答 10月10日
  • 创建了问题 10月10日