div, ldiv, lldiv
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header  
<stdlib.h>
  | 
||
|   div_t     div( int x, int y ); 
 | 
||
|   ldiv_t    ldiv( long x, long y ); 
 | 
||
|   lldiv_t   lldiv( long long x, long long y ); 
 | 
(since C99) | |
|   Defined in header  
<inttypes.h>
  | 
||
| (since C99) | ||
Computes the quotient (the result of the expression x/y) and remainder (the result of the expression x%y) simultaneously. (since C99)
Computes quotient and remainder simultaneously. The quotient is the algebraic quotient with any fractional part discarded (truncated towards zero). The remainder is such that quot * y + rem == x. (until c99)
Contents | 
[edit] Notes
Until C99, the rounding direction of the quotient and the sign of the remainder in the built-in division and remainder operators was implementation-defined if either of the operands was negative, but it was well-defined in div and ldiv.
[edit] Parameters
| x, y | - | integer values | 
[edit] Return value
Structure of type div_t, ldiv_t, ldiv_t, imaxdiv_t defined as:
struct div_t { int quot; // The quotient int rem; // The remainder }; struct ldiv_t { long quot; // The quotient long rem; // The remainder }; struct lldiv_t { long long quot; // The quotient long long rem; // The remainder }; struct imaxdiv_t { std::intmax_t quot; // The quotient std::intmax_t rem; // The remainder };
[edit] Example
Run this code
#include <stdio.h> /* printf */ #include <stdlib.h> /* div */ int main () { div_t rslt; rslt=div(+23,+5); printf("div(+23,+5) = %2d,%2d\n", rslt.quot,rslt.rem); rslt=div(-23,+5); printf("div(-23,+5) = %2d,%2d\n", rslt.quot,rslt.rem); rslt=div(+23,-5); printf("div(+23,-5) = %2d,%2d\n", rslt.quot,rslt.rem); rslt=div(-23,-5); printf("div(-23,-5) = %2d,%2d\n", rslt.quot,rslt.rem); return 0; }
Output:
div(+23,+5) = 4, 3 div(-23,+5) = -4,-3 div(+23,-5) = -4, 3 div(-23,-5) = 4,-3
[edit] See also
|    remainder of the floating point division operation  (function)  | 
|
|   
C++ documentation for div
 
 | 
|