Cathy-Chen258 发表于 2020-11-24 23:52:14

紧急:关于c语言的if else 判断年月份的天数

本帖最后由 Cathy-Chen258 于 2020-11-24 23:55 编辑

#include <stdio.h>
int main()
{
        int a,b,c;
        printf("请输入年份和月份");
        scanf("%d.%d",&a,&b);
        //思路
        if(b==2)
                if(a%4==0&&a!=0||a%400==0)c=29;
                else c=28;
        else
                if(b==1||3||5||7||8||10||12)c=31;
                else c=30;
        printf("%d年%d月是%d天",a,b,c);
        return 0;
}各位论坛网友帮我看看else中判断哪里错了,我输入小月的月份都显示为31天,其他都没错

感谢各位热心答复与帮助{:5_110:}

昨非 发表于 2020-11-25 00:01:28

本帖最后由 昨非 于 2020-11-25 00:07 编辑

你再试试
#include <stdio.h>
int main()
{
        int a, b, c;
        printf("请输入年份和月份");
        scanf("%d.%d", &a, &b);
        //思路
        if (b == 2)
        {
                if (a % 4 == 0 && a != 0 || a % 400 == 0)c = 29;
                else c = 28;
        }
        else
        {
                if (b == 1 || b == 3 || b == 5 || b == 7 || b == 8 || b == 10 || b == 12)c = 31;   //这儿改了
                else c = 30;
        }
        printf("%d年%d月是%d天", a, b, c);
        return 0;
}


解决了记得设置最佳哈

Cathy-Chen258 发表于 2020-11-25 00:28:47

昨非 发表于 2020-11-25 00:01
你再试试




对我忘了或比赋值优先级大
再问最后一个问题:a%2==!0定义为奇数对吗

最后谢谢你那么晚还能回复我,早点休息{:5_110:}

昨非 发表于 2020-11-25 00:31:19

单等号是赋值,双等号是判断等于
一般奇数为a%2! =0
页: [1]
查看完整版本: 紧急:关于c语言的if else 判断年月份的天数