SELEKCIJA (IF NAREDBA)
if naredba omogućava grananje (donošenje
odluka) ovisno o vrijednosti ili stanju varijabli. To omogućava da se naredbe
izvrše ili preskoče, ovisno o odluci. Osnovni format je,
if( izraz ) programske naredbe;Primjer;
if( studenti < 65 ) ++student_count;U gornjem primjeru, varijabla student_count se inkrementira samo ako je vrijednost varijable studenti manja od 65.
Slijedeći program koristi if naredbu da ocijeni je li korisnikov upisani broj između 1 i 10.
#include <stdio.h> main() { int number; int valid = 0; while( valid == 0 ) { printf("Unesite broj između 1 i 10 -->"); scanf("%d", &number); /* pretpostavka da je broj valjan */ valid = 1; if( number < 1 ) { printf("Broj je manji od 1. Unesite ponovno\n"); valid = 0; } if( number > 10 ) { printf("Broj je veći od 10. Unesite ponovno\n"); valid = 0; } } printf("Broj je %d\n", number ); } Ispis programa Unesite broj između 1 i 10 --> -78 Broj je manji od 1. Unesite ponovno Unesite broj između 1 i 10 --> 4 Broj je 4
VJEŽBA C10
Napišite C program koji omogućava korisniku da
upiše 5 ocjena između 0 i 100. Program mora izračunati prosječnu
ocjenu i označiti koliko je ocjena manje od 65.
Pogledajmo slijedeći program koji utvrđuje je li znak unesen s tipkovnice u rasponu od A do Z.
#include <stdio.h> main() { char letter; printf("Unesite znak-->"); scanf(" %c", &letter ); if( letter >= 'A' ) { if( letter <= 'Z' ) printf("Znak je između A i Z\n"); } } Ispis programa Unesite znak --> C Znak je između A i ZProgram ne ispisuje ništa ako znak nije između A i Z. O ovomu ćemo govoriti na slijedećim stranicama kada budemo razmatrali if else naredbu.
scanf(" %c", &letter );Ovo omogućava preskakanje TABULATORA, razmaka i ENTER tipke. Ako se ne koristi vodeće prazno mjesto, koristio bi se prvi unešeni znak, i scanf ne bi ignorirala navedene znakove.
USPOREDBA JEDNAKOSTI float
tipova
Zbog načina na koji se pohranjuju float tipovi,
vrlo je teško usporediti jesu li jednaki. Stoga to izbjegavajte činiti,
jer možete dobiti nepredviđene rezultate.