div


div

Performs integer division, returning quotient and remainder

 #include <stdlib.h> div_t div (int dividend , int divisor  ); ldiv_t ldiv ( long dividend , long divisor  ); lldiv_t lldiv ( long long dividend , long long divisor  );         (C99) 

The div( ) functions divide an integer dividend by an integer divisor, and return the integer part of the quotient along with the remainder in a structure of two integer members named quot and rem. div( ) obtains the quotient and remainder in a single machine operation, replacing both the / and % operations. The header file stdlib.h defines this structure for the various integer types as follows:

 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; typedef struct { long long int quot; long long int rem; } lldiv_t; 

Example

 int people, apples; div_t  share; for ( apples = -3 ; apples < 6 ; apples += 3 ) {   if ( apples == 0 )     continue;                   // Don't bother dividing up nothing.   for ( people = -2 ; people < 4 ; people += 2 )   {     if ( people == 0 )       continue;                 // Don't try to divide by zero.     share = div( apples, people );      printf( "If there are %+i of us and %+i apples, "              "each of us gets %+i, with %+i left over.\n",              people, apples, share.quot, share.rem );    } } 

As the output of the preceding code illustrates, any nonzero remainder has the same sign as the dividend:

 If there are -2 of us and -3 apples, each of us gets +1, with -1 left over. If there are +2 of us and -3 apples, each of us gets -1, with -1 left over. If there are -2 of us and +3 apples, each of us gets -1, with +1 left over. If there are +2 of us and +3 apples, each of us gets +1, with +1 left over. 

See Also

imaxdiv( ), remainder( )



C(c) In a Nutshell
C in a Nutshell (In a Nutshell (OReilly))
ISBN: 0596006977
EAN: 2147483647
Year: 2006
Pages: 473

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net