有没有大哥帮忙看一下哪里不对

来源:4-3 分支结构之多重if-else语句

北渊

2020-03-13 17:16

判断大小月

请用程序实现: 输入一个表示月份的整数,判断它是大月还是小月。如果是大月,输出solar month;如果是小月,输出lunar month; 如果输入数据不合法, 则输出error

注意: 如果一个月有31天则被称为大月;如果一个月有30天则被称为小月,2月既不是大月也不是小月,在本题中,将2月划分到小月。

#include <stdio.h>

int main () {
    // TODO 请在此处编写代码,完成题目要求
    int month=2;
    if(month==1||3||5||7||8||10||12)
    {
        printf("solar month");
    }
        else if(month==2||4||6||9||11)
        {
            printf("lunar month");
        }
    else
    {
        printf("error");
    }
    return 0;
}


写回答 关注

2回答

  • 小龙佩奇
    2020-03-13 22:32:15
    已采纳

    int main(void) { 

    int month=2;

        if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))

        {

            printf("solar month\n");

        }

        else if((month==2)||(month==4)||(month==6)||(month==9)||(month==11))

            {

                printf("lunar month\n");

            }

        else

        {

            printf("error\n");

        }

        return 0;

    }


  • 小龙佩奇
    2020-03-13 23:17:56

    在你的if(month==1||3||5||7||8||10||12) 代码中,(程序认为你的意思是:2=1,或者2=3,或2=5....)

    然后,month=2 为"True",就直接输出"solar month",不再执行下面的语句。

    小龙佩奇 回复北渊

    也可能是因为month==1||3||5||7||8||10||12在C中计算出一个为"True"的逻辑值。 我是小白,如果回答错了请原谅!!

    2020-03-13 23:30:36

    共 3 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926020 学习 · 20793 问题

查看课程

相似问题