C Exercises: Divide two integers without using multiplication, division and mod operator
C Programming Mathematics: Exercise-3 with Solution
Write a C program to divide two integers (dividend and divisor) without using multiplication, division and mod operator.
Example:
Input:
dividend_num = 7
divisor_num = 2
dividend_num = -17
divisor_num = 5
dividend_num = 35
divisor_num = 7
Output:
Result: 3
Result: -3
Result: 5
Pictorial Presentation:
Sample Solution:
C Code:
#include <stdio.h>
#include <limits.h>
int divide_result(int dividend_num, int divisor_num){
int sign = 1;
long int output = 0;
if (dividend_num < 0) {
sign *= -1;
} else {
dividend_num *= -1;
}
if (divisor_num < 0) {
sign *= -1;
} else {
divisor_num *= -1;
}
while (dividend_num <= divisor_num) {
long int temp = 0;
long int div = divisor_num;
while (dividend_num <= div) {
temp += (temp+1);
dividend_num -= div;
div += div;
}
if (output >= INT_MAX) {
if (sign == -1) {
return INT_MIN;
} else {
return INT_MAX;
}
}
output += temp;
}
return output * sign;
}
int main(void)
{
int dividend_num = 7;
int divisor_num = 2;
printf("\nDividend %d, Divisior %d ",dividend_num, divisor_num);
printf("\nResult: %d ",divide_result(dividend_num, divisor_num));
dividend_num = -17;
divisor_num = 5;
printf("\n\nDividend %d, Divisior %d ",dividend_num, divisor_num);
printf("\nResult: %d ",divide_result(dividend_num, divisor_num));
dividend_num = 35;
divisor_num = 7;
printf("\n\nDividend %d, Divisior %d ",dividend_num, divisor_num);
printf("\nResult: %d ",divide_result(dividend_num, divisor_num));
return 0;
}
Sample Output:
Dividend 7, Divisior 2 Result: 3 Dividend -17, Divisior 5 Result: -3 Dividend 35, Divisior 7 Result: 5
Flowchart:
C Programming Code Editor:
Improve this sample solution and post your code through Disqus.
Previous: Write a C program to check whether an integer is a palindrome or not.
Next: Write a C program to calculate x raised to the power n (xn).
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
C Programming: Tips of the Day
Static variable inside of a function in C
The scope of variable is where the variable name can be seen. Here, x is visible only inside function foo().
The lifetime of a variable is the period over which it exists. If x were defined without the keyword static, the lifetime would be from the entry into foo() to the return from foo(); so it would be re-initialized to 5 on every call.
The keyword static acts to extend the lifetime of a variable to the lifetime of the programme; e.g. initialization occurs once and once only and then the variable retains its value - whatever it has come to be - over all future calls to foo().
Ref : https://bit.ly/3fOq7XP
- New Content published on w3resource:
- HTML-CSS Practical: Exercises, Practice, Solution
- Java Regular Expression: Exercises, Practice, Solution
- Scala Programming Exercises, Practice, Solution
- Python Itertools exercises
- Python Numpy exercises
- Python GeoPy Package exercises
- Python Pandas exercises
- Python nltk exercises
- Python BeautifulSoup exercises
- Form Template
- Composer - PHP Package Manager
- PHPUnit - PHP Testing
- Laravel - PHP Framework
- Angular - JavaScript Framework
- Vue - JavaScript Framework
- Jest - JavaScript Testing Framework