C++判断闰年

一、闰年定义

闰年指公历年份中,除以4余数为0且除以100余数不为0,或者除以400余数为0的年份。

二、判断闰年方法

1、通过if语句进行判断

     bool isLeapYear(int year) {
         if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
             return true;
         }
         else {
             return false;
         }
     }

2、利用三目运算符进行判断

     bool isLeapYear(int year) {
         return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? true : false;
     }

3、利用位运算进行判断

     bool isLeapYear(int year) {
         return !(year & 3) && (year % 100 || !(year % 400)); //等同于(year%4==0 && year%100!=0) || (year%400==0)
     }

三、错误示例

下面代码的判断条件有误,不能正确判断闰年:

     bool isLeapYear(int year) {
         if (year % 4 == 0) {
             return true;
         }
         else {
             return false;
         }
     }

该段代码不能正确判断闰年,因为2000年就是闰年,但使用该代码判断会返回false。

四、完整代码

     #include <iostream>
     using namespace std;
     
     bool isLeapYear(int year) {
         return !(year & 3) && (year % 100 || !(year % 400));
     }

     int main() {
         int year;
         cout << "请输入年份:";
         cin >> year;
         if (isLeapYear(year)) {
             cout << year << "年是闰年" << endl;
         }
         else {
             cout << year << "年不是闰年" << endl;
         }
         return 0;
     }

以上代码输入一个年份,利用判断函数判断该年份是否是闰年,并输出结果。

本文链接:https://my.lmcjl.com/post/15656.html

展开阅读全文

4 评论

留下您的评论.