/*********************************************
* @brief 计算除法,同时得到商和余数
* @param x 被除数
* @param y 除数
* @return 包含商和余数的结构体
********************************************/
div_t div(int x, int y);
!subtitle:说明
计算 int 类型的除法,同时得到商和余数,其中商向零取整。
!subtitle:参数
x - 被除数
y - 除数
!subtitle:返回值
包含商和余数的结构体。
结构体定义可能为(字段顺序未定义):
struct div_t { int quot; // 商 int rem; // 余数 };或
struct div_t { int rem; // 余数 int quot; // 商 };
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
div_t result = div(10, 3); // 得 3 余 1
printf("div(10, 3) = %d ... %d\n", result.quot, result.rem);
result = div(-10, 3); // 得 -3 余 -1
printf("div(-10, 3) = %d ... %d\n", result.quot, result.rem);
return 0;
}
运行结果:
div(10, 3) = 3 ... 1
div(-10, 3) = -3 ... -1
C23 standard (ISO/IEC 9899:2024):
7.8.2.2 The imaxdiv function (p: TBD)
7.22.6.2 The div, ldiv and lldiv functions (p: TBD)
C17 standard (ISO/IEC 9899:2018):
7.8.2.2 The imaxdiv function (p: 159)
7.22.6.2 The div, ldiv and lldiv functions (p: 259)
C11 standard (ISO/IEC 9899:2011):
7.8.2.2 The imaxdiv function (p: 219)
7.22.6.2 The div, ldiv and lldiv functions (p: 356)
C99 standard (ISO/IEC 9899:1999):
7.8.2.2 The imaxdiv function (p: 200)
7.20.6.2 The div, ldiv and lldiv functions (p: 320)
C89/C90 standard (ISO/IEC 9899:1990):
4.10 div_t, ldiv_t
4.10.6.2 The div function