imaxdiv
Calcule le quotient et le reste de deux valeurs entières de n’importe quelle taille en une seule opération.
Syntaxe
imaxdiv_t imaxdiv(
intmax_t numer,
intmax_t denom
);
Paramètres
numer
Numérateur.
denom
Dénominateur.
Valeur retournée
imaxdiv
, appelé avec des arguments de type intmax_t
, retourne une structure de type imaxdiv_t
qui comprend le quotient et le reste.
Notes
La fonction imaxdiv
divise numer
par denom
, calculant ainsi le quotient et le reste. La imaxdiv_t
structure contient le quotient, intmax_t
quot
et le reste, intmax_t
rem
. Le signe du quotient est le même que le signe du quotient mathématique. Sa valeur absolue est le plus grand entier inférieur à la valeur absolue du quotient mathématique. Si le dénominateur est 0, le programme se termine par un message d’erreur.
Spécifications
Routine | En-tête requis |
---|---|
imaxdiv |
<inttypes.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// 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);
}
Quand la fonction est générée, puis appelée avec les paramètres de ligne de commande 9460730470000000 8766
, le code génère cette sortie :
The call to imaxdiv(9460730470000000, 8766)
results in a quotient of 1079252848505, and a remainder of 5170
Voir aussi
Prise en charge des fonctions mathématiques et à virgule flottante
div
ldiv
, lldiv