imaxdiv
Herhangi bir boyuttaki iki tamsayı değerinin bölümünü ve geri kalanını tek bir işlem olarak hesaplar.
Sözdizimi
imaxdiv_t imaxdiv(
intmax_t numer,
intmax_t denom
);
Parametreler
numer
Pay.
denom
Payda.
Dönüş değeri
imaxdiv
, türündeki intmax_t
bağımsız değişkenlerle çağrılır, bölümü ve kalan bölümü oluşturan bir tür imaxdiv_t
yapısı döndürür.
Açıklamalar
imaxdiv
işlevi ölçütüne göre bölünür numer
denom
ve böylece bölüm ile geri kalanı hesaplar. Yapı imaxdiv_t
, bölüm, intmax_t
quot
ve kalan intmax_t
rem
öğesini içerir. Bölüm işareti, matematiksel bölüm işaretiyle aynıdır. Mutlak değeri, matematik bölümünün mutlak değerinden küçük olan en büyük tamsayıdır. Payda 0 ise, program bir hata iletisiyle sonlanır.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
imaxdiv |
<inttypes.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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);
}
derlendiğinde ve komut satırı parametreleriyle 9460730470000000 8766
çağrıldığında kod şu çıkışı oluşturur:
The call to imaxdiv(9460730470000000, 8766)
results in a quotient of 1079252848505, and a remainder of 5170