Sdílet prostřednictvím


imaxdiv

Vypočítá podíl a zbytek dvou celočíselné hodnoty libovolné velikosti jako jednu operaci.

Syntaxe

imaxdiv_t imaxdiv(
   intmax_t numer,
   intmax_t denom
);

Parametry

numer
Čitatel.

denom
Jmenovatel.

Vrácená hodnota

imaxdiv, volána s argumenty typu intmax_t, vrátí strukturu typu imaxdiv_t , která se skládá z quotientu a zbytku.

Poznámky

Funkce imaxdiv se vydělí numer denom a vypočítá podíl a zbytek. Struktura imaxdiv_t obsahuje podíl, intmax_t quota zbytek, intmax_t rem. Znaménko quotientu je stejné jako znaménko matematického podílu. Absolutní hodnota je největší celé číslo, které je menší než absolutní hodnota matematického podílu. Pokud jmenovatel je 0, program se ukončí chybovou zprávou.

Požadavky

Rutina Požadovaný hlavičkový soubor
imaxdiv <inttypes.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

// crt_imaxdiv.c
// Build using: cl /W3 /Tc crt_imaxdiv.c
// This example takes two integers as command-line
// arguments and calls imaxdiv to divide the first
// argument by the second, then displays the results.

#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>

int main(int argc, char *argv[])
{
   intmax_t x,y;
   imaxdiv_t div_result;

   x = atoll(argv[1]);
   y = atoll(argv[2]);

   printf("The call to imaxdiv(%lld, %lld)\n", x, y);
   div_result = imaxdiv(x, y);
   printf("results in a quotient of %lld, and a remainder of %lld\n\n",
          div_result.quot, div_result.rem);
}

Při vytváření a následném zavolání s parametry příkazového 9460730470000000 8766řádku kód vygeneruje tento výstup:

The call to imaxdiv(9460730470000000, 8766)
results in a quotient of 1079252848505, and a remainder of 5170

Viz také

Podpora pro matematiku a plovoucí desetinou čárku
div
ldiv, lldiv