ldiv() - 整数除算の商と剰余の計算

標準

標準/拡張機能 C/C++ 依存項目

ISO C
XPG4
XPG4.2
C99
Single UNIX Specification、バージョン 3

両方  

形式

#include <stdlib.h>

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

機能説明

numeratordenominator で割った商および剰余を計算します。

戻り値

long int quot と剰余 long int rem の両方を 含む ldiv_t 型の構造体を戻します。

値を表せない場合は、未定義な戻り値が戻される結果となります。denominator が 0 の場合は、ゼロ除算例外が起こります。

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);      
      }                                                                         
}                                                                               
                                                                                
出力:
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

関連情報