计算两个整数值的商和余数。
语法
div_t div(
int numer,
int denom
);
ldiv_t ldiv(
long numer,
long denom
);
lldiv_t lldiv(
long long numer,
long long denom
);
ldiv_t div(
long numer,
long denom
); /* C++ only */
lldiv_t div(
long long numer,
long long denom
); /* C++ only */
参数
numer
分子。
denom
分母。
返回值
使用 div 类型的参数调用的 int 将返回 div_t 类型的结构,其包含商和余数。 long 类型的带参数的返回值是 ldiv_t,long long 类型的带参数的返回值是 lldiv_t。 div_t、ldiv_t 和 lldiv_t 类型在 <stdlib.h> 中定义的。
备注
div 函数将 numer 除以 denom,并计算商和余数。 div_t 结构包含商,quot 和余数,rem。 商的符号与数学商的符号相同。 其绝对值是小于数学商的绝对值的最大整数。 如果分母为 0,程序将终止并显示错误消息。
采用 long 或 long long 类型参数的 div 重载仅可供 C++ 代码使用。 返回类型 ldiv_t 和 lldiv_t 包含成员 quot 和 rem,它们与 div_t 的成员含义相同。
要求
| 例程 | 必需的标头 |
|---|---|
| .- . | <stdlib.h> |
有关兼容性的详细信息,请参阅 兼容性。
示例
// crt_div.c
// arguments: 876 13
// This example takes two integers as command-line
// arguments and displays the results of the integer
// division. This program accepts two arguments on the
// command line following the program name, then calls
// div to divide the first argument by the second.
// Finally, it prints the structure members quot and rem.
//
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main( int argc, char *argv[] )
{
int x,y;
div_t div_result;
x = atoi( argv[1] );
y = atoi( argv[2] );
printf( "x is %d, y is %d\n", x, y );
div_result = div( x, y );
printf( "The quotient is %d, and the remainder is %d\n",
div_result.quot, div_result.rem );
}
x is 876, y is 13
The quotient is 67, and the remainder is 5