Table of Contents
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 2nd number in the priority list and has associativity 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
0 Comments