为了账号安全,请及时绑定邮箱和手机立即绑定

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

开始不知道闰年的条件

假设能被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 回答

 第一段
    year = year/4// 这里没有加;所以不能编译

第二段

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

0 回复 有任何疑惑可以回复我~
#1

tuzib263629491 提问者

非常感谢!
2016-07-10 回复 有任何疑惑可以回复我~
#2

tuzib263629491 提问者

第一段我加了;之后还是没办法运行,而且运行没有报错,直接显示停止工作。
2016-07-10 回复 有任何疑惑可以回复我~
#3

慕粉3583865 回复 tuzib263629491 提问者

我感觉是因为字符串的格式,一个字符用%c就好
2016-07-11 回复 有任何疑惑可以回复我~

我也是才学哒,不过可以帮你稍微解答一下。像你说的,你的第一段代码,你假设能被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)

1 回复 有任何疑惑可以回复我~
#1

tuzib263629491 提问者

非常感谢你的第二段解释 非常详细
2016-07-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信