Home » Programming » C Examples » C Program to Check if the Number is Even or Odd

# C Program to Check if the Number is Even or Odd

In this example, we will learn to check if the number is even or odd.

A number is even if it is divisible by 2 whereas a number is odd if it is not divisible by 2.

For example:

Even numbers are;
-4, -6, 0, 2, 4, 100, -200, etc.
Odd numbers are:
1, 11, -21, 225, etc.

Some of you might say odd and even numbers cannot be negative. This is a controversial topic so, any of the theories you follow is correct for now. While you can check this article/post from wolfram which says non-negative numbers can also be odd or even.

## The main Idea

Let’s see how we will check if the number is even or odd. We know that even numbers are divisible by 2 and odd numbers are not divisible. This means that whenever we divide even numbers by 2 we get a remainder of 0. However, we will get the remainder of 1 (or -1 if the number is negative)  if we divide odd numbers by1.

Example:

4 / 2 => reminder = 0, so number is even
5 / 2 => remainder = 1, so number is odd

In C, we use the “%” operator to find the remainder of a number. Then,

4 % 2 = 0 /* number is even */
5 % 2 = 1 /* number is odd */

## Algorithm to check if the number is odd or even

We will use the variable num to store the value of the number. Algorithm is given as follows,

Step 1: Start.
Step 2: Take an integer as input in variable num.
Step 3: Divide the num by 2.
Step 4: If the remainder is 0 then num is even.
Step 5: If the remainder is 1 or -1 then num is odd.
Step 6: End.

In short,

Start,
if num % 2 == 0 then
num is even
if num % 2 == 0 then
num is odd
End.

## Program to check if the number is even or odd using if

#include<stdio.h>
int main(){
int num;
printf("Enter the number: ");
scanf("%d", &num);

/* If the remainder is 0 then even else odd */
if(num % 2 == 0){
printf("%d is even.", num);
}
if(num % 2 == 1 || num % 2 == -1){
printf("%d is odd.", num);
}

return 0;
}

Output

Enter the number: 80
80 is even.
Enter the number: -5
-5 is odd.

Explanation

• We are taking an integer number as input in the variable num.
• After that, to check if the number is odd or even we used if statements.
if(num % 2 == 0){
. . .
}
if(num % 2 == 1 || num % 2 == -1){
. . .
}

In the first if block we checked if the number is even. The condition num % 2 == 0 means that whenever a num is divided by 2 it should give 0 which is the required condition for a number to be even. It works for both negative and positive numbers.

Similarly, in the next if block we check if the number is odd. The condition num % 2 == 1 and num % 2 == -1 means that when we divide a number by 2 it gives remainder of either 1 or -1. The remainder is 1 if the number is positive and -1 if the number is negative. Also, there is || symbol which is the symbol for OR. This ensures if either of the condition is true the if block executes.

• Finally, in the inside the if block we print the output accordingly.

## Program using if…else

#include<stdio.h>
int main(){
int num;
printf("Enter the number: ");
scanf("%d", &num);

/* If the remainder is 0 then even else odd */
if(num % 2 == 0){
printf("%d is even.", num);
} else {
printf("%d is odd.", num);
}

return 0;
}

Output

Enter the number: 20
20 is even.
Enter the number: -255
-255 is odd.

Explanation

While using multiple if blocks even if the condition in first if block satisfies other succeeding if blocks will be executed. So to eliminate this we can use either if...else or else if statements.

We used if...else to check the condition because else if couldn’t be used since we have only 2 conditions.

if(num %2 == 0){
. . .
} else {
. . .
}

For the condition part, we checked the remainder of the num when it is divided by 2.

i.e. num % 2

If remainder is 0 then num is even else odd.

20 % 2 = 0 /* so 20 is even */
-255 %2 = -1 != 0 /* so, -255 is odd */

More Examples