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

• C Examples 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 