#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
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)