亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

第一段代碼哪兒錯了,第二段代碼為什么是正確的

開始不知道閏年的條件

假設能被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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號