天天看點

C中if...else語句的應用

若要利用if-else語句判斷year是否閏年,是閏年則傳回1,不是閏年則傳回0。以下選項中不能完成正确判斷的程式段是()。

A)if(year%400==0) return 1;
else if(year%100!=0)
         if(year%4==0) return 1;
         else return 0;

B)if(year%400!=0)
        if(year%100==0) return 0;
        else if(year%4==0) return 1;
             else return 0;
else return 1;

C)if(year%100==0)
        if(year%400==0) return 1;
        else return 0;
else if(year%4==0) return 1;
     else return 0;

D)if(year%4!=0)  return 0;
else if(year%400==0) return 1;
     else if(year%100==0) return 0;
          else return 1;
           

答案選擇A,因為沒有考慮到year%100==0 這種情況:

具體分析:

首先滿足閏年的條件有2個滿足其中一條即可。

1.能被400整除

2.能被4整除,缺不能被100整除。

知道條件以後,我們再來看A選項具體代碼

if(year%400==0) return 1;

else if(year%100!=0)

         if(year%4==0) return 1;

         else return 0;

這個代碼的編寫是沒有問題的,隻是漏了一種情況year%100==0 這種情況,即加上if(year%100==0) return 0;便可。

舉例,當year=100時,首先不滿足year%400==0,其次不滿足year%100!=0,在這段程式中,要滿足return 0;必須year%100==0,year%4==0,顯然條件是無法達成的。