Please note, this is a STATIC archive of website www.w3resource.com from 19 Jul 2022, cach3.com does not collect or store any user information, there is no "phishing" involved.
w3resource

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:

C Exercises: Divide two integers without using multiplication, division and mod operator

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:

Flowchart: Divide two integers without using multiplication, division and mod operator.

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