標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
C99 |
両方 | z/OS® V1R7 |
#define _ISOC99_SOURCE
#include <inttypes.h>
imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
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