imaxdiv() - intmax_t の商と剰余

標準

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

C99
Single UNIX Specification、バージョン 3
C++ TR1 C99

両方 z/OS® V1R7

形式

#define _ISOC99_SOURCE
#include <inttypes.h>

imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
コンパイル要件: 関数 imaxdiv() を使用するには、long long が使用可能であることが必要です。

機能説明

imaxdiv() 関数は、分子 / 分母と、分子 % 分母を単一の演算によって計算します。 imaxdiv 関数は、lldiv() および ldiv() と類似しています。唯一の違いは、戻り値の型が imaxdiv_t であり、渡される値の型が intmax_t であることです。

戻り値

imaxdiv() は、商と剰余の両方からなる imaxdiv_t 型の構造体を戻します。 結果のどちらの部分も表現できない場合、動作は未定義です。分母がゼロの場合は、ゼロ除算例外が発生します。

#define _ISOC99_SOURCE
#include <inttypes.h>      
#include <stdio.h>                                  
                                                        
int main(void)                                            
{                                                         
 intmax_t num = 45;
 intmax_t den = 7;                           
 imaxdiv_t res;                                           
       printf("Original numerator: %jd and denominator: %jd "
            ,num,den);                   
       res = imaxdiv(num,den);              
       printf("Quotient: %jd  Remainder: %jd¥n"
             , res.quot,res.rem);                      
}                                                        

出力:

Original numerator: 45 and denominator: -7 Quotient: -6  Remainder: 3

関連情報