C/div
< C
DeklaracjaEdytuj
- div_t div (int numer, int denom);
Plik nagłówkowyEdytuj
OpisEdytuj
- Funkcja div zwraca w strukturze typu div_t wynik dzielenia zmiennej numer przez zmienną denom.
Wartość zwracanaEdytuj
- 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 <cstdlib> struct div_t { int quot; int rem; };
Przykład użyciaEdytuj
Ł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 = wynik
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