div() — 商および剰余の計算
フォーマット
#include <stdlib.h>
div_t div(int numerator, int denominator);
言語レベル
ANSI
スレッド・セーフ
はい
ただし、関数バージョンのみがスレッド・セーフです。マクロ・バージョンはスレッド・セーフではありません。
説明
div() 関数は、numerator を denominator で割った商および剰余を計算します。
戻り値
div() 関数は、商 int quot および剰余 int rem の両方を含む型 div_t の構造体を戻します。戻り値が表せない場合は、その値は予期できません。 denominator が 0 の場合は、例外が起こります。
例
この例では、div() を使用して、2 つの被除数と 2 つの除数からなる 1 組のセットの商と剰余を計算します。
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
int num[2] = {45,-45};
int den[2] = {7,-7};
div_t ans; /* div_t is a struct type containing two ints:
'quot' stores quotient; 'rem' stores remainder */
short i,j;
printf("Results of division:¥n");
for (i = 0; i < 2; i++)
for (j = 0; j < 2; j++)
{
ans = div(num[i],den[j]);
printf("Dividend: %6d Divisor: %6d", num[i], den[j]);
printf(" Quotient: %6d Remainder: %6d¥n", ans.quot, ans.rem);
}
}
/***************** Output should be similar to: *****************
Results of 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
**********************************************************/