第一段代码哪儿错了,第二段代码为什么是正确的

来源:4-2 分支结构之简单if-else语句

tuzib263629491

2016-07-10 12:53

开始不知道闰年的条件

假设能被4整除的就是闰年


#include <stdio.h>

int main() 

{

    int year = 2014; //今年是2014年

    //补全一下代码

    year = year/4

    if(year == 1)

    {

        printf("%s\n",'y');

    }

    else

    {

        printf("%s\n",'n');

    }

    

    

    

    

    

    return 0;

}


这段代码哪儿错了?没办法编译。

还有


#include <stdio.h>

int main() 

{

    int year = 2012; //今年是2014年

    //补全一下代码

    if(year%4)

{

        printf("今年是平年");

    }

    else{

        printf("今年是闰年");    

    }

        

    

    return 0;

}


这段代码只取余4,也没有写出取余4之后的结果,也没有加那些%d\n,为什么也能得到正确结果

写回答 关注

2回答

  • 慕粉3583865
    2016-07-10 15:50:30
    已采纳
     第一段
        year = year/4// 这里没有加;所以不能编译

    第二段

    if(year%4)//year%4这个表达式的值为0,在C语言里就认为是假,执行else语句。相当于if(0)

    慕粉3583... 回复tuzib2...

    我感觉是因为字符串的格式,一个字符用%c就好

    2016-07-11 13:58:31

    共 3 条回复 >

  • 慕僵尸粉1314
    2016-07-10 17:22:02

    我也是才学哒,不过可以帮你稍微解答一下。像你说的,你的第一段代码,你假设能被4整除的年份就是闰年,这个条件的意思是年份可以被4整除并且余数是0,所以判断条件应该是if(year%4==0),并且前面没必要再进行year=year/4因为这个是赋值语句(需要删除),你这样做会改变年份,其他代码正常。然后第二段代码,本来按你后面编排的语句if的判断语句应该是if(year%4!=0),但是你这样做的结果却是对的是因为,if()else的判断方式是如果“()”内的值是真(1)输出"今年是平年",若是假(0)输出"今年是闰年",然后year%4的值等于0是假,所以输出"今年是闰年"。

    PS:闰年的判断方式不是简单的年份被4整除,而是if(year%4==0&&year%100!=0||year%400==0)

    tuzib2...

    非常感谢你的第二段解释 非常详细

    2016-07-10 20:21:33

    共 1 条回复 >

C语言入门

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

926209 学习 · 20797 问题

查看课程

相似问题