Table of contents
1.
Introduction
2.
Syntax of Modulus Operator in C
3.
Return Values for Modulus Operator in C
3.1.
C
4.
How does Modulus Operator work In C?
4.1.
C
5.
Calculation of Modulus Operator in C
6.
Applications of the Modulus Operator
6.1.
1. Checking for Even or Odd Numbers
6.2.
C
6.3.
2. Implementing a Digital Clock
6.4.
C
7.
Example of Modulus Operator in C
7.1.
C
7.2.
C
7.3.
C
7.4.
C
8.
Some Exceptional Restrictions of the Modulo Operator in C
9.
Modulus Operator with Different Operand Types
10.
Frequently Asked Questions
10.1.
What is the use of the modulus (%) operator in C++?
10.2.
What is 1 modulo 10 in C?
10.3.
What is an example of a modulus?
10.4.
What is the difference between division and modulus operator in C?
11.
Conclusion
Last Updated: Dec 6, 2024
Easy

Modulus Operator in C

Author Gunjan Batra
0 upvote
Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

Introduction

The modulus operator, often denoted as % in many programming languages including C, provides the remainder of a division operation. Despite its seemingly straightforward concept, the modulus operator is an incredibly powerful tool when applied creatively and with understanding.

modulus operator in C

In this article, we'll delve into the various facets of the modulus operator in C: how it works, its uses, its behavior with different operand types, and common scenarios where it comes in handy.

In C programming, the modulus operator (%) returns the remainder of dividing the first operand by the second operand. It's commonly used in arithmetic operations, especially for tasks like checking if a number is even or odd, calculating remainders, or cycling through values in a circular buffer. For instance, 5 % 2 returns 1, as 5 divided by 2 leaves a remainder of 1. Similarly, -5 % 2 returns -1, as -5 divided by 2 leaves a remainder of -1. Note that the result of the modulus operator is always in the range of the second operand's sign.

Syntax of Modulus Operator in C

In C programming, the modulus operator is represented by the percent sign (%). It is used to find the remainder when one integer is divided by another. The syntax of the modulus operator is as follows:

result = dividend % divisor;

 

Here, dividend is the number being divided, divisor is the number by which the dividend is divided, and % is the modulus operator.

Return Values for Modulus Operator in C

The return values for the modulus operator are the remainder after the division. The result will be an integer representing the remaining value after dividing the dividend by the divisor. If the result is 0, it means that the dividend is evenly divisible by the divisor. For example,

  • C

C

#include <stdio.h>

int main() {
int dividend = 10;
int divisor = 3;
int result;

result = dividend % divisor;

printf("The remainder when %d is divided by %d is %d\n", dividend, divisor, result);

return 0;
}
You can also try this code with Online C Compiler
Run Code

Output

The remainder when 10 is divided by 3 is 1

How does Modulus Operator work In C?

The modulus operator in C is used to find the remainder of a division operation. If you're familiar with division from arithmetic, you know that it usually involves a dividend, a divisor, and potentially a remainder. Here's how it works in a simple C code snippet:

  • C

C

#include<stdio.h>


int main() {
   int dividend = 10;
   int divisor = 3;
   int remainder = dividend % divisor;


   printf("The remainder of %d divided by %d is %d\n", dividend, divisor, remainder);
   return 0;
}
You can also try this code with Online C Compiler
Run Code

In this code, the remainder of 10 divided by 3 is 1, which is what the modulus operator gives us.

Output

The remainder of 10 divided by 3 is 1

Calculation of Modulus Operator in C

The modulus operator (%) in C calculates the remainder of the division operation between two operands. It follows the formula:

𝑎mod  𝑏=𝑎−(𝑎/𝑏)×𝑏

Where:

  • 𝑎 is the dividend or the number being divided.
  • 𝑏 is the divisor or the number by which 𝑎a is being divided.

This operation returns the remainder after dividing 𝑎 by 𝑏. If 𝑎a is divisible by 𝑏, the result is 0. Otherwise, the result is the remainder.

Applications of the Modulus Operator

Now that we've seen how the modulus operator works, let's explore some of its practical applications.

1. Checking for Even or Odd Numbers

The modulus operator can easily check if a number is even or odd. If a number modulo 2 equals 0, the number is even. If it equals 1, the number is odd. Here is a code snippet illustrating this:

  • C

C

#include<stdio.h>


int main() {
   int num = 10;
   if(num % 2 == 0) {
       printf("%d is an even number.\n", num);
   } else {
       printf("%d is an odd number.\n", num);
   }
   return 0;
}
You can also try this code with Online C Compiler
Run Code

Output

10 is an even number.

2. Implementing a Digital Clock

The modulus operator can be used to wrap values, such as implementing a digital clock that goes from 23:59 to 00:00. Here, modulus 24 and modulus 60 are used for hours and minutes respectively.
 

  • C

C

#include<stdio.h>
void display_time(int hours, int minutes) {
   printf("%02d:%02d\n", hours % 24, minutes % 60);
}


int main() {
   display_time(23, 59);
   return 0;
}
You can also try this code with Online C Compiler
Run Code

Output

23:59

Example of Modulus Operator in C

 

Example 1: Basic Use of Modulus Operator: 

  • C

C

#include <stdio.h>

int main() {
int dividend = 29;
int divisor = 5;
int remainder = dividend % divisor;
printf("Remainder of %d divided by %d is %d\n", dividend, divisor, remainder);
return 0;
}
You can also try this code with Online C Compiler
Run Code


Example 2: Modulus Operator to Check Even or Odd:

  • C

C

#include <stdio.h>

int main() {
int num = 26;
if (num % 2 == 0) {
printf("%d is an even number.\n", num);
} else {
printf("%d is an odd number.\n", num);
}
return 0;
}
You can also try this code with Online C Compiler
Run Code


Example 3: Using Modulus in a Loop:

  • C

C

#include <stdio.h>

int main() {
int limit = 10;
printf("Odd numbers up to %d:\n", limit);
for (int i = 1; i <= limit; i++) {
if (i % 2 != 0) {
printf("%d\n", i);
}
}
return 0;
}
You can also try this code with Online C Compiler
Run Code


Example 4: Modulus for Circular Array Indexing:

  • C

C

#include <stdio.h>

int main() {
int array[] = {10, 20, 30, 40, 50};
int size = sizeof(array) / sizeof(array[0]);
int index = 0;

// Simulate accessing next element in a circular manner
for (int i = 0; i < 10; i++) {
printf("Element at index %d is %d\n", index, array[index]);
index = (index + 1) % size;
}
return 0;
}
You can also try this code with Online C Compiler
Run Code

Some Exceptional Restrictions of the Modulo Operator in C

  • Division by Zero: Attempting to divide by zero using the modulus operator results in undefined behavior. It's crucial to ensure that the divisor is never zero to avoid unexpected results or program crashes.
  • Floating-point Operands: The modulus operator cannot be used with floating-point operands (e.g., float or double). It only works with integer operands.
  • Signedness: The result of the modulus operator follows the sign of the dividend in C. For example, -10 % 3 yields -1, not 2, as some might expect. This behavior can lead to unexpected results if not considered carefully.

Modulus Operator with Different Operand Types

The modulus operator in C only works with integer operands. If you try to use it with a float or a double, the compiler will throw an error.

Also see, Floyd's Triangle in C

Frequently Asked Questions

What is the use of the modulus (%) operator in C++?

The modulus (%) operator in C++ returns the remainder of dividing the first operand by the second. It's commonly used to check divisibility, calculate remainders, or cycle through values.

What is 1 modulo 10 in C?

In C, 1 modulo 10 (1 % 10) equals 1. The modulo operator (%) returns the remainder of dividing the first operand (1) by the second operand (10), which is 1.

What is an example of a modulus?

An example of a modulus operation is 7 % 3, which equals 1. This operation calculates the remainder when 7 is divided by 3, resulting in 1.

What is the difference between division and modulus operator in C?

In C, the division operator (/) calculates the quotient of dividing the first operand by the second, while the modulus operator (%) calculates the remainder. Division returns the whole number result, while modulus returns the remainder.

Conclusion

The modulus operator in C is a simple yet powerful tool with various applications. While it only works with integers, its uses range from simple arithmetic to more complex tasks such as checking even-odd numbers or implementing a digital clock. So, as you continue your journey with C, remember to leverage this versatile operator when it suits your needs.

Live masterclass