w3resource

C++ Exercises: Display all the leap years between two given years

C++ Basic: Exercise-79 with Solution

Write a C++ program to display all the leap years between two given years. If there is no leap year in the given period,display a suitable message.
Note: Range of the two given years: ( 0 < year1 ≤ year2 < 3,000).

Visual Presentation:

C++ Exercises: Display all the leap years between two given years

Sample Solution:

C++ Code :

#include <iostream>

// Macros for defining range loops
#define range(i,a,b) for(int (i)=(a);(i)<(b);(i)++)
#define rep(i,n) range(i,0,n)

using namespace std;

// Function to check if a year is a leap year
inline bool isleap(int year) {
    if(year % 400 == 0)
        return true;
    if(year % 100 == 0)
        return false;
    if(year % 4 == 0)
        return true;
    return false;
}

int main(void) {
    int a, b;
    bool space = false;

    // Input years
    cin >> a >> b;

    // Output the range of years provided
    cout << "Input years: " << a << " - " << b << endl;

    // Output leap years between the given range of years
    cout << "\nLeap years between said years:\n";

    // Display an empty line if a leap year is found
    if(space) puts("");

    bool ans = false;

    // Loop through the range of years to find leap years
    range(i, a, b + 1) {
        if(isleap(i)) {
            cout << i << endl;
            ans = true;
        }
    }

    // Output if no leap years are found within the range
    if(!ans) puts("No leap years.");

    space = true;

    return 0;
}

Sample Output:

Input years: 1975 - 2018
Leap years between said years:
1976
1980
1984
1988
1992
1996
2000
2004
2008
2012
2016

Flowchart:

Flowchart: Display all the leap years between two given years

C++ Code Editor:

Previous: Write a C++ program to sum of all positive integers in a sentence.
Next: Write a C++ program that accepts n different numbers (0 to 100) and s which is equal to the sum of the n different numbers.

What is the difficulty level of this exercise?



Follow us on Facebook and Twitter for latest update.