C言語入門講座。関数、サンプル集を参考にして、 C言語をマスターしよう。初心者から上級者まで。

整数型割り算の商と余りを求める

2012.08.10

div関数とldiv関数は、整数型の割り算の商と余りを求めます。div関数はint型、ldiv関数はlong int型の割り算です。

C言語の場合、整数型の割り算の商は/演算子で、余りは%演算子で求めることができますので、通常はこれらの演算子を使った方がよいでしょう。

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

numeratorは被除数(割られる方の値)を指定します。
denominatorは除数(割る方の値)を指定します。

戻り値として、div_t又は、ldiv_t構造体が返り、この中のquotメンバ(商)とremメンバ(余り)に結果が入っています。quot×denominator+rem=numeratorの関係になります。

プログラム 例

#include <stdio.h>
#include <stdlib.h>
/* 列数 */
#define ROW_MAX 10

int main(void)
{
  int       num;
  div_t     res;

  for (num = 1; num <= 50; ++num) {
    printf('%3d', num);
    res = div(num, ROW_MAX);
    if (res.rem == 0) {
      printf('\n');          /* 改行 */
    }
  }

  return 0;
}

例の実行結果

$ ./xdiv.exe
  1  2  3  4  5  6  7  8  9 10
 11 12 13 14 15 16 17 18 19 20
 21 22 23 24 25 26 27 28 29 30
 31 32 33 34 35 36 37 38 39 40
 41 42 43 44 45 46 47 48 49 50
$

関連記事