imaxdiv

Calcola il quoziente e il resto di due interi di qualsiasi dimensione come singola operazione.

Sintassi

imaxdiv_t imaxdiv(
   intmax_t numer,
   intmax_t denom
);

Parametri

numer
Numeratore.

denom
Denominatore.

Valore restituito

imaxdiv, chiamato con argomenti di tipo intmax_t, restituisce una struttura di tipo imaxdiv_t che comprende il quoziente e il resto.

Osservazioni:

La funzione imaxdiv divide numer per denom e pertanto calcola il quoziente e il resto. La struttura imaxdiv_t contiene il quoziente, intmax_tquot, e il resto, intmax_trem. Il segno del quoziente è uguale al segno del quoziente matematico. Il valore assoluto è il numero intero più grande minore del valore assoluto del quoziente matematico. Se il denominatore è 0, il programma termina con un messaggio di errore.

Requisiti

Ciclo Intestazione obbligatoria
imaxdiv <inttypes.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

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

Quando viene compilato e quindi chiamato con i parametri della riga di comando 9460730470000000 8766, il codice genera questo output:

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

Vedi anche

Supporto matematico e a virgola mobile
div
ldiv, lldiv