How to write C Program to Check Leap Year or Not using If Statement, Nested If Statements, and Else If Statement with an example?. Before we get into C program to check leap year, Let us see the logic and definition behind the Leap Year

### Leap year in C

The normal year contains 365 days, but the leap year contains 366 days. This extra day added to the February month, that’s why we get February 29.

All the years that are perfectly divisible by 4 called Leap years except the century years. Century years mean they end with 00 such as 1200, 1300, 2400, 2500, etc. (Obviously they are divisible by 100). For these century years, we have to calculate further to check the Leap year.

- If the century year is divisible by 400, then that year is a C Leap year
- If the century year is not divisible by 400, then that year is not a Leap year in C programming.

## C Program to Check Leap Year using If Statement

This C program to Check leap year allows the user to enter any year. And then, this C program will check whether the user entered year is Leap year or not using the If statement

/* C Program to Check Leap Year using If Statement */ #include <stdio.h> int main() { int year; printf("\n Please Enter any year you wish \n "); scanf(" %d ", &year); if (( year%400 == 0)|| (( year%4 == 0 ) &&( year%100 != 0))) printf("\n %d is a Leap Year. \n", year); else printf("\n %d is not the Leap Year. \n", year); return 0; }

**OUTPUT**

Let us check for the normal year (Not Leap Year)

**ANALYSIS**

Within this C program to Check Leap Year example, Since we have to check multiple conditions within one If Statement, we used Logical AND and Logical OR operators. Let us divide the condition to understand it better

1: ( year%400 == 0)||

2: ( year%4 == 0 ) &&

3: ( year%100 == 0))

The first C Programming condition (year%400 == 0) will check whether the (year%400) reminder is exactly equal to 0 or not. As per the algorithm, any number that is divisible by 400 is a Leap year.

OR

The second If statement condition holds 2 statements, so they both have to be TRUE.

The first condition (year%4 == 0) will check whether the remainder of the (year % 4) is exactly equal to 0 or not. If the condition is False, then it will exit from the condition because there is no point in checking the other condition. It is not the Leap year. **AND**

The second condition will check (year % 100) reminder is not equal to 0. If it is TRUE, the given number is not a century number.

As per the algorithm, any number that is divisible by 4 but not by 100, then that number is Leap Year.

**TIP: **Please refer Logical Operators in C to understand the functionality of Logical And and Logical Or.

## C Program to Check Leap Year using Else If Statement

This program for leap year in c allows the user to enter any year. Then this C program will check whether the user entered year is Leap year or not using the Else If statement

/* C Program to Check Leap Year using Else If Statement */ #include <stdio.h> int main() { int year; printf("\n Please Enter any year you wish \n"); scanf("%d", &year); if ( year%400 == 0) printf("\n %d is a Leap Year. \n", year); else if ( year%100 == 0) printf("\n %d is not the Leap Year. \n", year); else if ( year%4 == 0 ) printf("\n %d is a Leap Year. \n", year); else printf("\n %d is not the Leap Year. \n", year); return 0; }

**OUTPUT**

**ANALYSIS**

In this C Program to Check Leap Year example, the user will enter any year to check whether that year is Leap year or Not.

The first If condition will check whether the (year % 400) reminder is exactly equal to 0. As per the algorithm, any number that is divisible by 400 is a Leap year. If this condition Fails, then it will go to the next condition.

Second If condition will check (year % 100) reminder is exactly equal to 0 or not. As per the algorithm, any number that is not divisible by 400 but by 100 is Not a Leap year (Century Year). We checked (year % 400) in the First If statement. Because it failed, it came to the second condition. If both the first and second condition Fails, then it will go to the third condition.

The third condition will check whether year mod 4 is equal to 0. If this condition is True, the given year is Leap year because We already checked for the century years in the previous condition. If all the statements Fail, then it will go to the Else statement at the end.

If all the above statements fail, then it is not a Leap year.

## C Program to Check Leap Year using Nested If Statement

This leap year program in c allows the user to enter any year. Next, this C program will check whether the user entered year is Leap year or not using the Nested If

/* C Program to Check Leap Year using Nested If Statement */ #include <stdio.h> int main() { int year; printf("\n Please Enter any year you wish \n"); scanf("%d",&year); if(year%4 == 0) { if( year%100 == 0) { if ( year%400 == 0) printf("\n %d is a Leap Year.", year); else printf("\n %d is not the Leap Year.", year); } else printf("\n %d is a Leap Year.", year ); } else printf("\n %d is not the Leap Year.", year); return 0; }

**OUTPUT**

**ANALYSIS**

Within this C Program to Check Leap Year example, The user will enter any year to check whether that year is Leap year or Not. The first If the condition will check whether the remainder of the (year%4) is exactly equal to 0 or not.

- If the condition is False, the given number is not the Leap year.
- If the condition is True, then we have check further for the century year. So, the compiler will go to the Nested If condition.

Second If condition will check (year%100) reminder is exactly equal to 0 or Not.

- If this condition is False, the year is not the century year. So the given number is a Leap year in c programming.
- If the condition is True, then we have check whether the number is divisible by 400 or not. So, the compiler will goto to another Nested If condition.

In this condition, the compiler will check whether the remainder of the (year%400) is exactly equal to 0 or not.

- If the condition is False, the given number is definitely not the Leap year.
- If the condition is True, the given number is a Leap Year in C.