Share via


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 structure imaxdiv_t contient le quotient, intmax_tquot, et le reste, intmax_trem. 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 mathématique et à virgule flottante
div
ldiv, lldiv