You are on page 1of 12

Rjeenja zadataka sa II parcijalnog ispita Zadatak 2a)

GRUPA A: Napraviti funkciju koja provjerava da li primljeni niz cijelih brojeva sadri ispravne datume. Ukoliko sve trojke u nizu ine ispravne kombinacije dan,mjesec,godina funkcija vraa 1, a ukoliko neka od trojki nije ispravan datum funkcija vraa 0. Ukoliko broj lanova niza nije djeljiv sa 3, ne moe se utvrditi da li je zadnja trojka ispravan datum ili ne, pa funkcija treba vratiti -1. Primjer: Ako niz glasi 31,12,2008,1,1,2009,29,2,2009 Prva trojka (31.12.2008) je ispravan datum, druga trojka (1.1.2009) je takoe ispravan datum, ali trea trojka (29.2.2009) nije ispravan datum jer godina 2009. nije prestupna i februar nema 29 dana, tako da funkcija treba vratiti 0.
int nizdatuma (int datumi[], int vel) { int i; /* Niz broja dana u mjesecu */ int bdum[12]={31,28,31,30,31,30,31,31,30,31,30,31}; /* Neispravan broj clanova */ if (vel%3!=0) return -1; /* Provjera datuma */ for (i=0; i<vel; i+=3) { /* Radi kraceg pisanja... */ int d=datumi[i], m=datumi[i+1], g=datumi[i+2]; /* Prestupna godina */ if(g%4==0&&g%100!=0 || g%400==0) bdum[1]=29; else bdum[1]=28; /* Provjera mjeseca */ if (m<1 || m>12) return 0; /* Odmah prekidamo citavu funkciju */ /* Provjera dana */ if (d<1 || d>bdum[m-1]) return 0; } return 1;

GRUPA B: Napraviti funkciju koja prima niz cijelih pozitivnih brojeva koji predstavljaju cifre nekog broja, a vraa jedan cijeli broj koji je sastavljen od tih cifara. Funkcija treba vratiti -1 ukoliko niz nije niz cifara (sadri negativne brojeve ili viecifrene brojeve), a -2 ukoliko je niz predugaak. Poetne nule ignorisati. Primjer: Ako je dat niz 5,7,1,8,0 funkcija vraa broj 57180

int sastavi_niz(int niz[], int vel) { int i,rezultat=0; /* Provjera duzine */ if (vel>8) return -2; /* Provjera cifara */ for (i=0; i<vel; i++) if (niz[i]<0 || niz[i]>9) return -1; /* Sastavljanje */ for (i=0; i<vel; i++) { rezultat=rezultat*10+niz[i]; } return rezultat;

GRUPA C: Napraviti funkciju koja odreuje presjek dva niza cijelih brojeva. Presjek je onaj niz koji sadri brojeve koji se javljaju u oba primljena niza. Ukoliko se neki broj ponavlja, u presjeku se treba javljati samo jednom. Napomena: Poto funkcija ne moe vraati niz deklarisan u funkciji, niz za presjek treba biti jedan od parametara (pretpostavljamo da je dovoljno velik), a povratna vrijednost funkcije broj lanova tog niza. Primjer: Prvi niz glasi Drugi niz glasi Rezultat treba biti 6,7,22,0,-150,15,18,7 2,18,150,77,7,1,5,0 7,0,18

int presjek(int A[], int velA, int B[], int velB, int C[]) { int i,j,k=0,nasao,duplikat; for (i=0; i<velA; i++) { nasao=duplikat=0; /* Preskacemo duple */ for (j=i+1; j<velA; j++) { if (A[i]==A[j]) { duplikat=1; break; } } /* Trazimo u nizu B */ for (j=0; j<velB; j++) { if (A[i]==B[j]) { nasao=1; break; } } if (nasao==1 && duplikat==0) C[k++]=A[i]; } return k; }

GRUPA D: Napraviti funkciju koja primljeni niz cijelih brojeva preslae tako da se na poetku niza nalaze brojevi djeljivi sa 9, zatim brojevi djeljivi sa 8, sa 7 itd. sve do brojeva djeljivih sa 2, a nakon toga trebaju biti preostali brojevi koji nisu djeljivi ni sa jednim od ovih brojeva. Funkcija treba biti tipa void odnosno ne treba da vraa nita.
void slaganje_po_djeljivosti(int niz[], int vel) { int i,j,k=0; for (i=9; i>1; i--) { for (j=k; j<vel; j++) { if (niz[j]%i==0) { int tmp=niz[k]; niz[k]=niz[j]; niz[j]=tmp; k++; } } } }

Zadatak 2b)
GRUPA A: Napraviti funkciju sa sljedeim prototipom: int brojputa(char *s, int dvocifreni) koja pronalazi koliko puta se u stringu s javlja dvocifreni broj dvocifreni. Ukoliko broj nije dvocifren, funkcija treba vratiti broj -1. Primjer: neka je dat dvocifreni broj 28 i string s sljedeeg sadraja "Svakih 28 dana broj 128 treba napisati na tabli 28 puta." U ovom stringu broj 28 se javlja dva puta, pa funkcija treba vratiti broj 2. Pri tome, pazite da se ne broji broj 128 koji u sebi sadri 28.
int brojputa(char *s, int dvocifreni) { /* Da li je dvocifreni? */ if (dvocifreni<10 || dvocifreni>99) return -1; /* Pretvaramo cifre u tip char */ char prvacifra=dvocifreni/10+'0'; char drugacifra=dvocifreni%10+'0'; /* Prebrojavanje */ int brojac=0; while (*s !='\0') { if (*s==prvacifra && *(s+1)==drugacifra) { if ((*(s-1)<'0' || *(s-1)>'9') && (*(s+2)<'0' || *(s+2)>'9')) brojac++; } s++; } return brojac; }

GRUPA B: Napraviti funkciju sa sljedeim prototipom: int najduzaA(char *s) koja pronalazi najduu rije u stringu s koja poinje slovom A i vraa njenu duinu. Pri tome treba uzimati u obzir i veliko i malo slovo A. Rije je svaki niz slova, a sve to nije slovo se uzima kao zavretak rijei, npr. "auto-klub" su dvije rijei od kojih svaka ima po 4 slova. Primjer: neka je parametar s sljedeeg sadraja "Ako automobilom idemo u Afriku, avion je bolja alternativa." Rijei "automobilom" i "alternativa" su podjednako dugake i imaju po 11 slova. Kada bismo brojali i taku na kraju, zadnja rije bi imala 12 slova, ali u zadatku je reeno da sve to nije slovo ne pripada rijei. Napomena: Nije dozvoljeno izmijeniti niz S ni na koji nain!
int najduzaA(char *s) { int prvoa, rijec=0, najduza=0; while (*s != '\0') { /* Da li je rijec? */ if (*s>='a' && *s<='z' || *s>='A' && *s<='Z') { /* Da li je prvo slovo A? */ if (*s=='a' || *s=='A') prvoa=1; else prvoa=0; /* Mjerimo duzinu rijeci */ while (*s>='a' && *s<='z' || *s>='A' && *s<='Z') { rijec++; s++; } /* Da li je ova rijec najduza? */ if (prvoa==1 && rijec>najduza) najduza=rijec; rijec=0; } if (*s=='\0') break; /* Za slucaj da je zadnji znak slovo */ s++;

} return najduza;

GRUPA C: Napraviti funkciju sljedeeg prototipa: int prebroji (char* s, char slovo) Funkcija vraa broj -1 ukoliko parametar slovo nije ni malo ni veliko slovo. U suprotnom, vraa broj rijei koje poinju datim slovom. Pri tome treba brojati rijei koje poinju bilo velikim ili malim slovom, dakle ako je parametar slovo veliko treba brojati i mala, a ako je malo treba brojati i velika. Radi jednostavnosti, pretpostavite da je rije bilo koji niz znakova razdvojenih znakom razmaka.

Primjer: neka parametar slovo ima vrijednost 'A' a parametar s je sljedeeg sadraja "Ako automobilom idemo u Afriku, avion je bolja alternativa." U ovom stringu ima pet rijei koje poinju slovom A, pa funkcija treba vratiti broj 5. Napomena: Nije dozvoljeno izmijeniti niz S ni na koji nain!
int prebroji (char *s, char slovo) { int rezultat=0; char veliko, malo; /* Da li je slovo? */ if (!(slovo>='a' && slovo<='z' || slovo>='A' && slovo<='Z')) return -1; /* Odredjujemo veliko i malo slovo */ if (slovo>='a' && slovo<='z') { malo=slovo; veliko=slovo-'a'+'A'; } else { veliko=slovo; malo=slovo-'A'+'a'; } /* Ako je prvi znak slovo, brojimo jednu rijec */ if (*s==veliko || *s==malo) rezultat++; /* Prebrojavanje rijeci koje pocinju slovom */ while (*s!='\0') { if (*s==' ' && (*(s+1)==veliko || *(s+1)==malo)) rezultat++; s++; } return rezultat;

GRUPA D: Napraviti funkciju sa sljedeim prototipom: int brojcifara(char* s, int n) koja pronalazi i vraa prvi broj koji ima n cifara, a javlja se u datom stringu s. Pri tome paziti da funkcija ne uzima u obzir brojeve koji imaju n+1, n+2 itd. cifara. Ukoliko se u stringu ne javlja nijedan broj sa n cifara, funkcija treba vratiti -1. Ne morate obraati panju na negativne brojeve. Primjer: Ako je vrijednost n=3 za string A1b2C123 funkcija vraa 123 za string A1b2C1234 funkcija vraa -1 (jer je 1234 etverocifren)
int brojcifara(char *s, int n) { int rezultat=-1; int cifre=0, broj=0; /* Za slucaj da je prvi znak u stringu cifra */ if (*s>='0' && *s<='9') cifre++; /* Trazimo trocifren broj */ while (*s++!='\0') { if (*s>='0' && *s<='9') { /* Trenutni znak je cifra */ cifre++; broj=broj*10+(*s-'0'); } else { /* Znak nije cifra */ /* Da li je ispred broj sa n cifara? */ if (cifre==n) {

rezultat=broj; break; /* Izlaz iz petlje treba stati kod PRVOG broja*/ } cifre=broj=0; } /* kraj else */ } /* kraj while */ return rezultat;

Zadatak 3)
GRUPA A: U gradu Sarajevu tokom dvije godine vrena su svakodnevna mjerenja temperatura i to u 8, 12, 15, 18 i 21 sat. Ta mjerenja zapisana su u datoteku mjerenja-sarajevo.txt i to u obliku: 9.2 16.4 15.2 13.5 8.1 12.7 21.1 20.5 14.6 10.2 13.2 21.6 21.0 13.5 11.8 11.9 20.5 19.8 13.7 11.0 itd. Ova mjerenja potrebno je uitati u niz struktura oblika: struct mjerenja { float u8, u12, u15, u18, u21; } sarajevo[731]; Ovaj niz treba sortirati po mjerenju u 12 sati i zatim upisati u datoteku sortirano12-sarajevo.txt. Takoe na ekranu treba ispisati ukupan broj uitanih mjerenja, broj dana u kojima je u 21 sat bio toplije nego u 8 sati, te broj dana u kojima je u 18 sati bilo toplije nego u 15 sati. Primjer: Iz datoteke su ucitani podaci za 730 dana. Od toga, ima 25 dana u kojima je u 21 sat bilo toplije nego u 8 sati, a 27 dana u kojima je u 18 sati bilo toplije nego u 15 sati.

#include <stdio.h> #include <stdlib.h> /* Zbog exit */ struct mjerenja { float u8, u12, u15, u18, u21; }; int main() { struct mjerenja sarajevo[731], tmp; int i=0, j, k, toplije_21_8=0, toplije_18_15=0; FILE *ulaz, *izlaz; if (((ulaz=fopen("mjerenja-sarajevo.txt", "r")) == NULL) { printf ("Greska pri otvaranju datoteke mjerenja-sarajevo.txt\n"); exit (1); } if (((izlaz=fopen("sortirano12-sarajevo.txt", "w")) == NULL) { printf ("Greska pri otvaranju datoteke sortirano12-sarajevo.txt\n"); fclose(ulaz); exit (2); } while (fscanf(ulaz, "%2.1f %2.1f %2.1f %2.1f %2.1f\n", &sarajevo[i].u8, &sarajevo[i].u12, &sarajevo[i].u15, &sarajevo[i].u18, &sarajevo[i].u21)==5 &&

i<731) {

if (sarajevo[i].u21>sarajevo[i].u8) toplije_21_8++; if (sarajevo[i].u18>sarajevo[i].u15) toplije_18_15++; i++;

} printf ("Iz datoteke su ucitani podaci za %d dana.\nOd toga, ima %d dana u kojima je u 21 sat bilo toplije nego u 8 sati,\na %d dana u kojima je u 18 sati bilo toplije nego u 15 sati.\n", i, toplije_21_8, toplije_18_15); /* Sortiranje */ for (j=0; j<i-1; j++) for (k=j+1; k<i; k++) if (sarajevo[j].u12 < sarajevo[k].u12) { tmp=sarajevo[j]; sarajevo[j]=sarajevo[k]; sarajevo[k]=tmp; } /* Upis u datoteku */ for (j=0; j<i; j++) fprintf (izlaz, "%2.1f %2.1f %2.1f %2.1f %2.1f\n", sarajevo[j].u8, sarajevo[j].u12, sarajevo[j].u15, sarajevo[j].u18, sarajevo[j].u21); fclose(ulaz); fclose(izlaz); return 0;

GRUPA B: Napraviti program za firmu koja se bavi prodajom automobila. U datoteci prodana_vozila.txt nalazi se spisak prodanih automobila u periodu za koji se pravi statistika. Uitati podatke iz datoteke u sljedei niz struktura: struct automobil { char marka[15]; int tip; float cijena; } prodaja[100]; Pri emu marka moe biti Audi, Volkswagen ili Peugeot, a tip je cjelobrojna oznaka tipa izmeu 1 i 50. U datoteku statistika.txt treba upisati za svaku marku i tip vozila koliko je ukupno prodano vozila, te ukupan iznos zaraenog novca. Primjer izgleda ove datoteke: Volkswagen 1 5 400000 Volkswagen 2 2 150000 Audi 1 1 100000 Peugeot 1 4 150000 Osim ovoga, na ekran treba ispisati marku koja je ostvarila najveu zaradu i iznos zarade. Na primjer: Najvecu zaradu ostvario je Volkswagen, a ona iznosi 550000 KM.
#include <stdio.h> #include <stdlib.h> /* Zbog exit */ #include <string.h> /* Zbog strcmp */ struct automobil {

};

char marka[15]; int tip; float cijena;

int main() { struct automobil prodaja[100]; int i=0, j; float sumeV[50], sumeA[50], sumeP[50], ukupnoV, ukupnoA, ukupnoP; int brojV[50], brojA[50], brojP[50]; FILE *ulaz, *izlaz; if (((ulaz=fopen("prodana_vozila.txt", "r")) printf ("Greska pri otvaranju datoteke exit (1); } if (((izlaz=fopen("statistika.txt", "w")) == printf ("Greska pri otvaranju datoteke fclose(ulaz); exit (2); } == NULL) { prodana_vozila.txt\n"); NULL) { statistika.txt\n");

while (fscanf(ulaz, "%15s %d %5.2f\n", &prodaja[i].marka, &prodaja[i].tip, &prodaja[i].cijena)==3 && i<100) i++; /* Postavljamo sume na nulu */ ukupnoV=ukupnoA=ukupnoP=0; for (j=0; j<50; j++) sumeV[j]=sumeA[j]=sumeP[j]=brojV[j]=brojA[j]=brojP[j]=0; /* Racunamo sume */ for (j=0; j<i; j++) { int tip = prodaja[j].tip-1; /* Za krace pisanje */ if (strcmp(prodaja[j].marka,"Volkswagen")==0) { /* Drugi nacin je preko prvog slova: if (prodaja[j].marka[0] == 'V') { */ sumeV[tip] += prodaja[j].cijena; brojV[tip]++; ukupnoV += prodaja[j].cijena; } else if (strcmp(prodaja[j].marka,"Audi")==0) { sumeA[tip] += prodaja[j].cijena; brojA[tip]++; ukupnoA += prodaja[j].cijena; } else if (strcmp(prodaja[j].marka,"Peugeot")==0) { sumeP[tip] += prodaja[j].cijena; brojP[tip]++; ukupnoP += prodaja[j].cijena; } } /* Ispis na ekran */ if (ukupnoV>ukupnoA && ukupnoV>ukupnoP) printf ("Najvecu zaradu ostvario je Volkswagen, a ona iznosi %.0f KM.", ukupnoV); else if (ukupnoA>ukupnoV && ukupnoA>ukupnoP) printf ("Najvecu zaradu ostvario je Audi, a ona iznosi %.0f KM.", ukupnoA); else printf ("Najvecu zaradu ostvario je Peugeot, a ona iznosi %.0f KM.", ukupnoP);

/* Ispis u datoteku */ for (j=0; j<i; j++) { fprintf (izlaz, "Volkswagen sumeV[j]); fprintf (izlaz, "Audi sumeA[j]); fprintf (izlaz, "Peugeot sumeP[j]); } fclose(ulaz); fclose(izlaz); return 0; }

%d %d %.0f\n", j+1, brojV[j], %d %d %.0f\n", j+1, brojA[j], %d %d %.0f\n", j+1, brojP[j],

GRUPA C: Tri banke (Reifeissen, Volksbank i ProCredit) prave pregled potranje kredita u 2007. i 2008. godini radi prognoze za 2009. godinu. Svaki kredit je zabiljeen u obliku: struct kredit { char banka[15]; float suma; int godina; } Uitati ove podatke iz datoteke krediti.txt u niz. Krediti do 10.000 KM spadaju u male, od 10.000 do 50.000 KM u srednje i preko 50.000 KM u velike kredite. Odrediti broj ove tri vrste kredita za svaku banku (posebno za 2007. i 2008. godinu) i ukupnu sumu koja je pozajmljena. Ove podatke upisati u datoteku statistika.txt ija je struktura: Banka Godina Broj malih Broj srednjih Broj velikih Ukupan iznos Na primjer: Volksbank 2007 5 2 3 450000 Volksbank 2008 6 2 1 320000 Reifeissen 2007 8 4 5 1100000 itd. Pored ovoga, treba izraunati i na ekranu ispisati procenat rasta ili pada svake od tri vrste kredita za svaku banku, pri emu se za ovaj procenat koristi ukupan iznos izdatih kredita te vrste u 2007. i u 2008. godini. Npr. ako je suma svih malih kredita za banku Volksbank u 2007. bila 100000 KM, a u 2008. 115000, porast iznosi 15%. Primjer ispisa: Volksbank: mali krediti +15%, srednji krediti -5%, veliki krediti -60% Reifeissen: mali krediti +10%, srednji krediti +15%, veliki krediti -10% ProCredit: mali krediti -10%, srednji krediti -15%, veliki krediti -20%
/* NAPOMENA: Posto je ovaj zadatak bio nesto tezi nego kod drugih grupa, odnosno bilo je puno pisanja (sto se moglo olaksati komentarima tipa "isti kod za Reifeissen"), bodovi su povecani proporcionalno svima koji zapoceli ispravno ali nisu stigli dovrsiti zadatak */ #include <stdio.h> #include <stdlib.h> /* Zbog exit */ #include <string.h> /* Zbog strcmp */ struct kredit { char banka[15]; float suma;

};

int godina;

int main() { struct automobil krediti[100]; int i=0, j; int brojacmali, brojacsrednji, brojacveliki; float sumamali, sumasrednji, sumaveliki, sm2, ss2, sv2; float procmali, procsrednji, procveliki; FILE *ulaz, *izlaz; if (((ulaz=fopen("krediti.txt", "r")) == NULL) { printf ("Greska pri otvaranju datoteke krediti.txt\n"); exit (1); } if (((izlaz=fopen("statistika.txt", "w")) == NULL) { printf ("Greska pri otvaranju datoteke statistika.txt\n"); fclose(ulaz); exit (2); } while (fscanf(ulaz, "%15s %5.2f %d\n", &krediti[i].banka, &krediti[i].suma, &krediti[i].godina)==3 && i<100) i++; /* Volksbank 2007. */ brojacmali=brojacsrednji=brojacveliki=sumamali=sumasrednji=sumaveliki=0; for (j=0; j<i; j++) { if (strcmp(krediti[j].banka,"Volksbank")==0) { /* Drugi nacin je preko prvog slova: if (krediti[j].banka[0] == 'V') { */ if (krediti[j].godina==2007) { if (krediti[j].suma<10000) { brojacmali++; sumamali += krediti[j].suma; } else if (krediti[j].suma<50000) { brojacsrednji++; sumasrednji += krediti[j].suma; } else { brojacveliki++; sumaveliki += krediti[j].suma; } } } } fprintf(izlaz, "Volksbank 2007 %d %d %d %.0f\n", brojacmali, brojacsrednji, brojacveliki, sumamali+sumasrednji+sumaveliki); sm2=sumamali; ss2=sumasrednji; sv2=sumaveliki; /* Ponoviti isti kod za 2008. godinu */ /* Ispis na ekran za Volksbank */ procmali=(sm2/(sumamali+sm2))*100; procsrednji=(ss2/(sumasrednji+ss2))*100; procveliki=(sv2/(sumaveliki+sv2))*100; printf ("Volksbank: mali krediti %+.0f, srednji krediti %+.0f, veliki krediti %+.0f\n", procmali, procsrednji, procveliki); /* Ponoviti kod za Reifeissen */

/* Ponoviti kod za ProCredit */ fclose(ulaz); fclose(izlaz); return 0;

GRUPA D: Student zavrne godine treba da diplomira. Da bi mogao braniti svoj rad, potrebno je da ima poloeno 30 ispita. U datoteci studentska_sluzba.txt smjeteni su podaci o ispitima koji su dati strukturom: struct ispit { int broj_indexa; int br_predmeta; int ocjena; } Ove podatke treba uitati iz datoteke u niz struktura. Provjeriti da li student, iji je broj indeksa unesen putem tastature, ima poloeno tano 30 razliitih ispita (ukoliko se neki ispit ponavlja, treba ga zanemariti). Ukoliko nema, na ekranu treba ispisati: Student ne moze braniti rad jer je polozio samo XX ispita. gdje umjesto XX ispisujete koliko ispita je student poloio. Ukoliko je student poloio 30 ispita treba na ekranu ispisati njegov prosjek. Pored ovoga, u datoteku statistika.txt treba ispisati za datog studenta koliko predmeta ima sa svakom moguom ocjenom, na primjer: 5 6 6 2 7 10 8 5 9 5 10 2 to znai da je taj student pao iz 6 predmeta, da iz dva predmeta ima ocjenu 6, iz 10 predmeta 7 itd.
#include <stdio.h> #include <stdlib.h> /* Zbog exit */ struct ispit { int broj_indexa, br_predmeta, ocjena; }; int main() { struct ispit ispiti[100]; int i=0, j, k, brind, duplikat; /* Brojaci ocjena (indeks u nizu je pomaknut za 5) */ int brojac[6]; FILE *ulaz, *izlaz; if (((ulaz=fopen("studentska_sluzba.txt", "r")) == NULL) { printf ("Greska pri otvaranju datoteke studentska_sluzba.txt\n"); exit (1);

} if (((izlaz=fopen("statistika.txt", "w")) == NULL) { printf ("Greska pri otvaranju datoteke statistika.txt\n"); fclose(ulaz); exit (2); } while (fscanf(ulaz, "%d %d %d\n", &ispiti[i].broj_indexa , &ispiti[i].br_predmeta, &ispiti[i].ocjena)==3 && i<100) i++; printf ("Unesite broj indexa: "); scanf("%d", &brind); /* Postavljamo brojace na nulu */ for (j=0; j<6; j++) brojac[j]=0; /* Koliko ispita je polozio student? */ for (j=0; j<i; j++) { /* Pronalazenje duplikata */ duplikat=0; for (k=j+1; k<i; k++) { if (ispiti[k].broj_indexa==ispiti[j].broj_indexa && ispiti[k].predmet==ispiti[j].predmet) { duplikat=1; break; } } if (duplikat==1) continue; /* Prebrojavanje ocjena */ if (ispiti[i].broj_indexa==brind) brojac[ispiti[i].ocjena 5]++;

/* Ispis na ekran */ int polozenih = brojac[1]+brojac[2]+brojac[3]+brojac[4]+brojac[5]; /* Ne ukljucujemo brojac[0] jer su to petice nepolozeni ispiti */ if (polozenih<30) { printf ("Student ne moze braniti rad jer je polozio samo %d ispita.\n", polozenih); } else { /* Racunanje prosjeka */ float prosjek = brojac[1]*6 + brojac[2]*7 + brojac[3]*8 + brojac[4]*9 + brojac[5]*10; prosjek /= 30; printf ("Prosjek studenta je %5.2f.\n", prosjek); } /* Ispis u datoteku */ for (j=0; j<6; j++) fprintf (izlaz, "%-5d %-5d\n", j+5, brojac[j]); fclose(ulaz); fclose(izlaz); return 0; }

You might also like