Format
#include <stdlib.h> ldiv_t ldiv(long int numerator, long int denominator);
Language Level: ANSI, XPG4
ldiv calculates the quotient and remainder of the division of numerator
by denominator.
Return Value
ldiv returns a structure of type ldiv_t, containing both
the quotient (long int quot) and the remainder (long int rem). If
the value cannot be represented, the return value is undefined.
If denominator is 0, an exception is raised.
Example
This example uses ldiv to calculate the quotients and
remainders for a set of two dividends and two divisors.
#include <stdio.h> #include <stdlib.h>
int main(void)
{
long int num[2] = {45,-45};
long int den[2] = {7,-7};
ldiv_t ans; /* ldiv_t is a struct type containing two long ints:
'quot' stores quotient; 'rem' stores remainder */
short i,j;
printf("Results of long division:\n");
for (i = 0; i < 2; i++)
for (j = 0; j < 2; j++)
{
ans = ldiv(num[i], den[j]);
printf("Dividend: %6ld Divisor: %6ld", num[i], den[j]);
printf(" Quotient: %6ld Remainder: %6ld\n", ans.quot, ans.rem);
}
return 0;
/*********************************************************************
The output should be:
Results of long division:
Dividend: 45 Divisor: 7 Quotient: 6 Remainder: 3
Dividend: 45 Divisor: -7 Quotient: -6 Remainder: 3
Dividend: -45 Divisor: 7 Quotient: -6 Remainder: -3
Dividend: -45 Divisor: -7 Quotient: 6 Remainder: -3
*********************************************************************/
}
![]()
div -- Calculate Quotient and Remainder
![]()
lldiv -- Perform Long Long Division
<stdlib.h>