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
quot
a 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