Course Content

C Basics

## C Basics

# Multiplication, Division and Modulo

**Multiplication Operator**

The multiplication operator `*`

yields the **product of its operands**. For instance, if you're trying to determine the amount of water required to fill a pool:

Main

`#include <stdio.h> int main() { int height = 2; // in meters int width = 7; // in meters int length = 10; // in meters // A cubic meter contains one thousand liters int liters = (height * width * length) * 1000; printf("Size of pool: %d liters", liters); return 0; }`

**Division Operator**

The division operator `/`

**divides the left operand by the right one**.

Suppose you want to calculate a car's speed:

Main

`#include <stdio.h> int main() { int s = 200; // in meters double t = 3; // three hours double v = s / t; printf("Velocity = %f m/h", v); return 0; }`

Using `double`

variables ensures our result can be a **decimal value**, providing a more accurate answer. If we only worked with integer types, the result would also be an integer:

Main

`#include <stdio.h> int main() { int s = 200; // in meters int t = 3; // three hours // without `double v` variable printf("Velocity = %d m/h", s/t); return 0; }`

It's important to note that merely changing the format specifier won't fix an incorrect integer division:

Main

`#include <stdio.h> int main() { int s = 200; // in meters int t = 3; // three hours printf("Velocity = %f m/h", s/t); // changed specifier return 0; }`

However, there's a way to get a correct division without introducing another variable:

Main

`#include <stdio.h> int main() { int s = 200; // in meters double t = 3; // three hours printf("Velocity = %f m/h", s/t); // changed specificator return 0; }`

NoteFor a division to yield a decimal result, at least one of the operands should be of a decimal type like

`double`

.

**Modulo Operator**

The `%`

operator returns the **remainder of a division**. For instance:

Main

`#include <stdio.h> int main() { printf("Modulo 8 %% 5 = %d\n", 8 % 5); printf("Modulo 10 %% 3 = %d\n", 10 % 3); printf("Modulo 7 %% 5 = %d\n", 7 % 5); printf("Modulo 20 %% 5 = %d\n", 20 % 5); return 0; }`

NoteIf you're trying to display the

`%`

character in a string (e.g., in a`printf`

statement), you'd use`%%`

to represent a single`%`

. This tells the compiler you want to print the`%`

character and not use it as a format specifier.

Everything was clear?