ldiv() — Compute quotient and remainder of integral division

Standards

Standards / Extensions C or C++ Dependencies

ISO C
XPG4
XPG4.2
C99
Single UNIX Specification, Version 3

both  

Format

#include <stdlib.h>

ldiv_t ldiv(long int numerator, long int denominator);

General description

Calculates the quotient and remainder of the division of numerator by denominator.

Returned value

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 returned value is undefined. If denominator is 0, a divide by 0 exception is raised.

Example

CELEBL03
⁄* CELEBL03                                      

   This example uses the &ldiv. function 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);      
      }                                                                         
}                                                                               
                                                                                
Output
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

Related information