第一段代碼哪兒錯了,第二段代碼為什么是正確的
開始不知道閏年的條件
假設能被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,為什么也能得到正確結果
2016-07-10
第二段
if(year%4)//year%4這個表達式的值為0,在C語言里就認為是假,執行else語句。相當于if(0)
2016-07-10
我也是才學噠,不過可以幫你稍微解答一下。像你說的,你的第一段代碼,你假設能被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)