Freigeben über


imaxdiv

Berechnet den Quotienten und den Rest von zwei ganzzahligen Werten beliebiger Größe als einzelnen Vorgang.

Syntax

imaxdiv_t imaxdiv(
   intmax_t numer,
   intmax_t denom
);

Parameter

numer
Der Zähler.

denom
Der Nenner.

Rückgabewert

imaxdiv, die mit Argumenten vom Typ aufgerufen wird, gibt eine Struktur des Typs intmax_timaxdiv_t zurück, die den Quotienten und den Rest umfasst.

Hinweise

Die imaxdiv-Funktion teilt numer durch denom und berechnet dadurch den Quotienten und den Rest. Die imaxdiv_t Struktur enthält den Quotienten, intmax_t quotund den Rest, intmax_t rem. Das Zeichen des Quotienten entspricht dem Zeichen des mathematischen Quotienten. Der absolute Wert ist die größte ganze Zahl, die kleiner als der absolute Wert des mathematischen Quotienten ist. Wenn der Nenner 0 ist, wird das Programm mit einer Fehlermeldung beendet.

Anforderungen

Routine Erforderlicher Header
imaxdiv <inttypes.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// 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);
}

Wenn der Code mit den Befehlszeilenparametern von 9460730470000000 8766 erstellt und anschließend aufgerufen wird, wird diese Ausgabe generiert:

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

Siehe auch

Mathematische Unterstützung und Gleitkommaunterstützung
div
ldiv, lldiv