Ove relacijske operacije su vrlo korisne. Ali postoje slučajevi u kojima moramo znati ne samo je li jedna varijabla veća ili manja od druge, već i dobiti njezinu vrijednost. Iako se to lako može učiniti s 'if' izjavama i jednostavnim relacijskim operacijama, jezik C također nudi makronaredbe s funkcijama koje vraćaju maksimalnu ili minimalnu vrijednost između dvije varijable.
U ovom članku o Linuxhintu naučit ćete kako koristiti makro MIN() za pronalaženje minimalne vrijednosti dviju varijabli. Pokazat ćemo vam sintaksu, metodu pozivanja i vrstu podataka koju prihvaća. Zatim ćemo pogledati opis kako funkcionira i pregledati izraz i formulu koje ova makronaredba primjenjuje.
Zatim primjenjujemo ono što smo naučili u praktičnom primjeru koji uključuje isječke koda i slike koje pokazuju kako pronaći minimum s različitim tipovima podataka kao ulaze u makro MIN().
Sintaksa makronaredbe MIN() u jeziku C
MIN ( a , b )Opis makronaredbe MIN() u jeziku C
Makro MIN() vraća minimalnu vrijednost između varijabli 'a' i 'b'. Izraz koji prikazuje makronaredba MIN() uvjet je true/false gdje se između varijabli 'a' i 'b' primjenjuje relacijska operacija '<'. Ako je 'a' manje od 'b', vraća se 'a'. Ako je 'b' manje od 'a', vraća se 'b'.
#define MIN(a,b) (((a)<(b))?(a):(b))
Makro MIN() radi sa svim tipovima podataka u svojim ulazima i izlazima uz jedino pravilo da obje ulazne varijable moraju biti numeričke vrijednosti.
Ova makronaredba definirana je u zaglavlju 'param.h' u mapi 'sys'. Da bismo ga koristili, moramo ga umetnuti u naš kod na sljedeći način:
#include
Kako pronaći minimum između dvije cjelobrojne varijable pomoću makronaredbe MIN()
U ovom primjeru stvaramo varijable 'a' i 'b' tipa int kojima dodjeljujemo proizvoljnu vrijednost i iz koje pronalazimo minimum pozivom makronaredbe MIN(). Zatim ispisujemo vraćenu vrijednost pomoću funkcije printf().
Da bismo to učinili, uključujemo zaglavlja 'stdio.h' i 'param.h' i otvaramo funkciju main() tipa void. U njemu definiramo cijele brojeve 'a' i 'b' i pridružujemo im slučajnu vrijednost. Također definiramo cijeli broj “c” za pohranjivanje rezultata.
Zatim pozivamo makronaredbu MIN() i prosljeđujemo 'a' i 'b' kao ulazne argumente i 'c' kao izlazne argumente. Vraćeni rezultat prikazujemo pozivom funkcije printf(). Slijedi kôd za ovaj primjer:
#include#include
poništiti glavni ( ) {
int a = 32 ;
int b = 14 ;
int c ;
c = MIN ( a , b ) ;
printf ( ' \n Minimum je %i \n ' , c ) ;
}
Zatim vidimo sliku s kompilacijom i izvođenjem ovog koda. Kao što vidimo, makronaredba MIN() u ovom slučaju vraća vrijednost 'b'.
Isto se događa ako koristimo varijable tipa double.
#include#include
poništiti glavni ( ) {
dvostruko a = 3 ;
dvostruko b = 1 ;
dvostruko c ;
c = MIN ( a , b ) ;
printf ( ' \n Minimum dvostrukih a i b je %f \n ' , c ) ;
}
Minimum i maksimum s varijablama s pomičnim zarezom
Makro MIN() je korisna funkcija, ali se ne preporučuje njezina upotreba za varijable koje koriste vrijednosti s pomičnim zarezom. Za pronalaženje minimalne vrijednosti ove vrste, matematička biblioteka pruža skup funkcija koje su definirane u zaglavlju 'math.h'. Ovaj skup sastoji se od funkcija fmin(), fminf() i fminl(). Pogledajmo sljedeću sintaksu za svaku od ovih funkcija:
dvostruko fmin ( dvostruko x , dvostruko i ) ;plutati fminf ( plutati x , plutati i ) ;
dugo dvostruko fminl ( dugo dvostruko x , dugo dvostruko i ) ;
Funkcija fmin() radi s podacima tipa double (8 bajtova) s pomičnim zarezom. Funkcija fminf() radi s podacima tipa float (4 bajta), dok fminl() radi s podacima tipa long double (16 bajtova). Također, ove funkcije obrađuju nenumeričke vrijednosti (NaN).
Zaključak
U ovom članku o Linuxhintu objasnili smo sve što trebate znati za korištenje makronaredbe MIN() za pronalaženje minimalne vrijednosti između dvije varijable. Pogledali smo sintaksu i definiciju ove makronaredbe, kao i formulu koja primjenjuje uvjet true/false za operaciju 'manje od' (<) između dvije ulazne varijable.
Zatim smo teoriju koju smo naučili primijenili na praktični primjer pomoću isječaka koda i slika kako bismo vam pokazali kako raditi s različitim vrstama podataka. Također smo vam pokazali preporučene opcije za rad s brojevima s pomičnim zarezom gdje se ne preporučuje korištenje MIN().