#979: 怎麼了??sos


a9440503 (解題是錯誤 > <")

學校 : 國立彰化高級中學
編號 : 4016
來源 : [111.252.211.125]
最後登入時間 :
2014-05-02 11:30:52
d070. 格瑞哥里的煩惱 (0 尾版) -- 板橋高中教學題 | From: [114.46.33.111] | 發表日期 : 2008-11-26 21:59

#include<iostream>  
using namespace std;  
int main()  
{  
   int a;
   while(cin>>a)
   {
      if(a>0 && a%4==0 && a%100!=0 || a%400==0)           
         cout<<"a leap year"<<endl;           
      else if(a==0)
      cout<<" "<<endl;
         
      else
      cout<<"a normal year"<<endl;           
     
     
      
   }    
}

我輸入 0 為何出現 a leap year

 

#include<iostream>  
using namespace std;  
int main()  
{  
   int a;
   while(cin>>a)
   {
      if(a>0 && a%4==0 && a%100!=0 || a%400==0)           
         cout<<"a leap year"<<endl;           
      else if(a==0)break;
                     
      else   
         cout<<"a normal year"<<endl;
   }
}

我輸入 0 為何出現 a leap year

 
#980: Re:怎麼了??sos


snail (蝸牛)

學校 : 新北市立板橋高級中學
編號 : 2021
來源 : [203.64.161.123]
最後登入時間 :
2024-12-03 13:52:20
d070. 格瑞哥里的煩惱 (0 尾版) -- 板橋高中教學題 | From: [218.211.230.114] | 發表日期 : 2008-11-27 03:30

      if(a>0 && a%4==0 && a%100!=0 || a%400==0)           
         cout<<"a leap year"<<endl; 

&& 的優先順序會比 || 的優先順序來得高。所以你的條件式相當於 

(a>0 && a%4==0 && a%100!=0) || (a%400==0)

由於 0 是 400 的餘數,所以就是閏年啦!上面的條件式要加上適當的括號

a>0 && (a%4==0 && a%100!=0 || a%400==0)

 
ZeroJudge Forum