C/div

Z Wikibooks, biblioteki wolnych podręczników.
< C
Skocz do: nawigacja, szukaj

Deklaracja[edytuj]

div_t div (int numer, int denom);

Plik nagłówkowy[edytuj]

stdlib.h

Opis[edytuj]

Funkcja div zwraca w strukturze typu div_t wynik dzielenia zmiennej numer przez zmienną denom.

Wartość zwracana[edytuj]

Struktura typu div_t. Typ div_t składa się z dwóch pól typu int:
  • quot będącego skrótem angielskiej nazwy quotient ( iloraz czyli wynik z dzielenia )
  • rem będącego skrótem angielskiej nazwy remainder ( reszta z dzielenia )
#include <cstdliv>

struct div_t
{
    int quot;
    int rem;
};

Przykład użycia[edytuj]

Ładowanie biblioteki :

#include <stdlib.h> // Data Type: div_t

definicja zmiennych  :

int n = 20; // ang. numerator = dzielna ( licznik ) 
int d = -6; // ang. denominator = dzielnik (mianownik )
div_t result; // ang. result = iloraz 

dzielenie całkowite :

result = div (n, d);

Rezultat zawiera dwa pola :

result.quot // iloraz = ang. quotient
result.rem // reszta = ang. remainder

Teraz  :

  • result.quot jest równy -3
  • result.rem jest równy 2


zwrócmy uwagę że :

  • iloraz, czyli result.quot odpowiada n/d
  • reszta, czyli result.rem odpowiada n % d
  • (n/d)*d + n%d powinno być równe n.


Użyjmy odmiany div dla liczb long long int :

/*
gcc d.c -Wall
./a.out

http://www.gnu.org/software/libc/manual/html_node/Integer-Division.html
*/
#include <stdio.h> // printf
#include <stdlib.h> // lldiv_t

int main(){

 long long int n = 20;
 long long int d = 6;

 lldiv_t result; // 
 result = lldiv (n, d);
 // Now result.quot is 3 and result.rem is 2.
 printf(" %lld / %lld = %lld * %lld + %lld \n", n, d, result.quot, d, result.rem);

return 0;
}

Wynik :

  20 / 6 = 3 * 6 + 2