12.07.2015 Views

Programski jezik C - Pmf

Programski jezik C - Pmf

Programski jezik C - Pmf

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

7.5. REKURZIVNE FUNKCIJE 131što je efikasnije jer trebamo samo jedan poziv funkcije.Pogledajmo još jedan primjer rekurzivne funkcije:void unos(void){char znak;if((znak=getchar())!=’\n’) unos();putchar(znak);}Funkcija učitava znakove sa standardnog ulaza sve dok ne naide do prijelazau novu liniju i ispisuje učitane znakove. Ako izvršimo program#include void unos(void);int main(void){printf("\n Unesite niz znakova: ");unos();return 0;}dobit ćemo ovaj rezultat:Unesite niz znakova: ZdravoovardZPrvo je ispisan znak za prijelaz u novi red, a zatim niz Zdravo u obrnutomredoslijedu.Svaki poziv funkcije unos učita jedan znak sa standardnog ulaza i spremiga u lokalnu varijablu znak. Ukoliko učitani znak nije znak prijelaza u novired ponovo se poziva funkcija unos.Svaka varijabla definirana unutar funkcije vidljiva je samo u toj funkciji(vidi sekciju 9.1.1). Ona se kreira kod poziva funkcije i nestaje nakon izlazaiz funkcije. Stoga pri svakom novom pozivu funkcije unos kreira se novavarijabla s imenom znak. Budući da varijabla definirana u funkciji (unutarnjavarijabla) nije vidljiva izvan te funkcije, prisutnost više različitih varijabli simenom znak je dozvoljeno.Dakle, pri svakom novom pozivu funkcije unos bit će pročitan i pohranjenjedan znak sve dok ne naidemo do znaka za prijelaz u novi red. Tadapozvana funkcija ispiše znak za prijelaz u novi red i izade. Funkcija koja ju jepozvala ispisat će znak koji je pročitala (znak ’o’) i predaje kontrolu funkciji

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!