div () -计算商和余数

格式

#include <stdlib.h>
div_t div(int numerator, int denominator);

语言级别

ANSI

线程安全

但是,只有函数版本是线程安全的。 宏版本不是线程安全的。

描述

div() 函数计算 分子 除以 分母的商和余数。

返回值

div() 函数返回类型为 div_t的结构,其中包含商 int quot 和余数 int rem。 如果无法表示返回值,那么未定义其值。 如果 分母0,那么将发生异常。

示例

此示例使用 div() 来计算一组两个红利和两个除数的商和余数。
#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
 
**********************************************************/

示例