## Arithmetic Operators in C

Arithmetic operators in C take numerical values (literals or variables) as their operands and give a single numeric value as a result.

Arithmetic operators in C are:

Operator | Description |

+ | Adds operands |

– | Subtracts second operand from the first |

* | Multiplies both operands |

/ | Divides numerator by denominator |

% | Modulus operator returns the remainder after an integer division. |

## Examples

#include<stdio.h> int main() { int a,b; a=10; b=20; printf("Sum=%d\n",a+b); int product; product=a*b; printf("product=%d",product); printf("\nremainder=%d",b%a); }

**Output**

Hopefully, the above code and its output are clear.

**Now, let’s discuss the ‘/’ operator.**

**Scenario:**

If we declare two variables as integers and perform division operations on them, the result will be an integer.

9/2=4 (not 4.5)

To get a float value as a resultant, either the numerator or the denominator, or both of them must be the float values.

9.0/2=4.5

9/2.0=4.5

9.0/2.0=4.5

9/2=4

**Program:**

#include<stdio.h> int main() { float a; int b; a=9.5; b=2; printf("%f ",a/b); }

**Output:**

‘a’ is of type float, and ‘b’ is of type int. We get the float type result value. Remember to use ‘%f’ format specifiers in such cases.

Practice each case on your own to get a better understanding.

## Hierarchy of Operations

How should we evaluate an expression with more than one operator in an expression like ‘x*5+y/z-q*s’? In mathematics, BODMAS is used to decide which operator will be evaluated first. However, this rule is not applicable in the programming language.

There is a precedence order in C language that decides which operator to be evaluated first in the problems containing more than one operator.

- Expressions written inside brackets ‘
**( )**’ are**evaluated first**. *****,**/**,**%**, all three operators have the**highest**priority and have associativity**left to right**if two or all three operators come in one expression.**+**,**–**, comes at the**2**in the priority list and has associativity^{nd}number**left to right**.**=,**equality comes**last**in the priority list having associativity**right to left**.

**Example:**

X=16*4/2+9/3

Solving, ‘16*4’ first from left to right: 64/2+9/3

Now solving both ‘64/2’ and ‘9/3’: 32+3

Operating addition in last: 35

Now, making 35 equals X since it has the least priority:

X=35.

**Practice Question**

**Question**: **int a= 10/45*23%45/(45%4*21)**, what would be the value of ‘a’?

**Solution**: 10/45*23%45/(45%4*21)

10/45*23%45/21

0*23%45/21

0

**a= 0**