前两种写法本质相同,都要用到if套else if的判断语句,因为else只能跟上面最近的if,所以不能2个并排if加一个else形成3种情况可能,不然会出现满足第一个if也满足else的情况,但可以试着用3个并排if来解决(第三种)。
1582年以后规定为,普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年。
#include<iostream>
using namespace std;
main()
{
int x;
cout<<"请输入一个1582以后的年份判断是否为闰年"<<endl;
cin>>x;
if(x>1582){ //1582年以来的置闰规则:
if(x%4==0){ //普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
if(x%1000==0) //世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
cout<<x<<"是世纪闰年"<<endl;
else if(x%100!=0)
cout<<x<<"是普通闰年"<<endl;
else cout<<x<<"不是闰年"<<endl;
}else cout<<x<<"不是闰年"<<endl;
}else cout<<x<<"不在判断年份范围内,请重新输入"<<endl;
system("pause");
return 0;
}
#include<iostream>
using namespace std;
main()
{
int x;
cout<<"请输入一个1582以后的年份判断是否为闰年"<<endl;
cin>>x;
if(x>1582){ //1582年以来的置闰规则:
if(x%4==0&&x%100!=0) //普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
cout<<x<<"是普通闰年"<<endl; //世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
else if(x%400==0)
cout<<x<<"是世纪闰年"<<endl;
else cout<<x<<"不是闰年"<<endl;
}
else cout<<x<<"不在判断年份范围内,请重新输入"<<endl;
system("pause");
return 0;
}
#include<iostream>
using namespace std;
main()
{
int x;
cout<<"请输入一个1582以后的年份判断是否为闰年"<<endl;
cin>>x;
if(x>1582){ //1582年以来的置闰规则:
if(x%4==0&&x%100!=0) //普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
cout<<x<<"是普通闰年"<<endl; //世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
if(x%400==0)
cout<<x<<"是世纪闰年"<<endl;
if(x%400!=0&&x%100==0) cout<<x<<"不是闰年"<<endl;
}
else cout<<x<<"不在判断年份范围内,请重新输入"<<endl;
system("pause");
return 0;
}