You are on page 1of 62

Hadzi-Puric

1. Napisati program koji ispisuje poruku "Zdravo /*\" (svi karakteri


su vidljivi prilikom ispisa).

2. Napisati program koji sa ulaza ucitava ceo broj i zatim:


a) ispisuje njegovu dekadnu vrednost
b) ispisuje njegovu heksadekadnu vrednost
c) ispisuje njegovu oktalnu vrednost

3. Napisati program u kojem se prvo deklarise promenljiva slovo, a


zatim se njena vrednost inicijalizuje na A i ispisuje na ekran.

4. Napisati program koji ispisuje vrednost broja Pi sa 5 decimalnih


mesta.
(Pomoc: pogledati sadrzaj zaglavlja math.h pomocu man komande)

Resenja

1)
#include<stdio.h>
int main(){
/*
pojavljivanju karaktera ", ', \ prilikom ispisa
prethodi \
\n oznacava prelaz u novi red
*/

printf("\"Zdravo /*\\\"\n");

return 0;
}
2)
#include <stdio.h>

int main(){
int x;

printf("Unesite ceo broj: ");


scanf("%d", &x);

printf("Dekadna vrednost unetog broja je %d\n", x);


printf("Heksadekadna vrednost unetog broja je %x\n", x);
printf("Oktalna vrednost unetog broja je %o\n", x);
return 0;

}
3)
#include <stdio.h>

int main(){
char slovo='A';

printf("Krakter sa kojim radimo je %c\n", slovo);

return 0;
}
4)
#include <stdio.h>
#include <math.h>

int main(){

/*
u zaglavlju math.h su deklarisane osnovne matematicke
funkcije i konstante; M_PI je konstanta koja
predstavlja broj Pi
*/

printf("Broj Pi: %.5f\n", M_PI);

return 0;
}

1. Napisati progam koji za uneto n (n>0) ispisuje prvih n prirodnih


brojeva.
Na primer: za ulaz 4 program ispisuje 1 2 3 4

2. Napisati program koji za uneto n (n>0) na izlazu ispisuje


faktorijel broja n.
Na primer: za ulaz 4 izlaz je 24, za ulaz 5 izlaz je 120

3. Napisati program koji za unete brojeve x i n (n>0) na izlazu


ispisuje n-ti stepen broja x.
Na primer: za ulaz 2 3 izlaz je 8, za ulaz 4 2 izlaz je 16

4. Napisati program koji za uneti broj n (n>0) ispisuje zbir njegovih


cifara.
Na primer: za ulaz 123 izlaz je 6, za ulaz 5403 izlaz je 12

5. Napisati program demonstrira for petlju. Unosi se broj elemenata,


a zatim i sami elementi.
Program ispisuje najveci od unetih brojeva, kao i aritmeticku
sredinu unetih brojeva.
ULAZ IZLAZ
5 Aritmeticka sredina:3.400000
1 2 3 4 7 Najveci broj:7.000000

6. Napisati C program koji uitava pozitivan ceo broj sa standardnog


ulaza i ispisuje
najveu cifru tog broja.
ulaz izlaz
108 8
959 9

7. Napisati C program koji uitava sa standardnog ulaza prirodan broj


manji od
milijarde i na standardni izlaz ispisuje da li cifre tog broja
obrazuju strogo
rastui niz.
Na primer, cifre broja 118 ne obrazuju strogo rastui niz,
cifre broja 8876551 ne obrazuju strogo rastui niz, dok cifre broja
1234569
obrazuju strogo rastui niz.

8. Napisati C program koji uitava sa standardnog ulaza prirodan


broj manji
od 100000 i na standardni izlaz ispisuje da li je taj broj
Armstrongov. N-to
cifren broj je Armstrongov ako je jednak sumu N-tih stepena svojih
cifara. Na
primer, 1002 nije, 370 jeste, 407 jeste.

9. Napisati C program koji uitava sa standardnog ulaza prirodan broj


n i na
standardni izlaz ispisuje prvih n Nivenovih brojeva.
Prirodan broj je Nivenov ako je deljiv sumom svojih cifara. Na
primer, za
n=15, izlaz je 1,2,3,4,5,6,7,8,9,10,12,18,20,21,24.

10.
Napisati C program koji uitava sa standardnog ulaza datum u formatu
dd.mm.gggg i ispisuje na standardni izlaz redni broj tog dana u
godini.
Pretpostaviti da datumi su korektno uneti i da se odnose na vreme
posle
15.10.1582.
Na primer ulaz 01.01.2012. izlaz 1
ulaz 03.02.2011. izlaz 34
ulaz 01.03.2012. izlaz 61
ulaz 01.03.2011. izlaz 60

11. Napisati C program koji proverava korektnu uparenost zagrada


( i ) u tekstu koji dolazi sa standardnog ulaza.
Na primer, zagrade su korektno uparene u izrazu 5 * (8+3), a nisu u
izrazu 3 + )2) ili izrazu ( (3+6) * 8

12. Napisati C program koji prihvata sa standardnog ulaza pozitivan


ceo broj n (n <=50), proverava korektnost unete vrednosti, a zatim
uitava n celih brojeva. Ispisati sumu nenegativnih brojeva na
standardni izlaz. Koristite naredbu continue.

Resenja

#include <stdio.h>

int main(){

int n,i;

printf("Unesite broj n: ");

scanf("%d", &n);

if(n<0)

printf("Uneli ste negativan broj!\n");

else{

printf("Prvih %d brojeva je:\n", n);

for(i=1;i<=n;i++)

printf("%d ", i);

printf("\n");

return 0;
}

2)

#include <stdio.h>

int main(){

int n, i;

int f=1;

printf("Unesite broj n: ");

scanf("%d", &n);

if(n<0)

printf("Uneli ste negativan broj!\n");

else{

for(i=2; i<=n; i++)

f=f*i;

printf("Faktorijel je %d\n", f);

return 0;

3)

#include <stdio.h>

int main(){

int x, n;

int i;

int s;

printf("Unesite brojeve x i n: ");

scanf("%d %d", &x, &n);

if(n<0)
printf("Niste uneli dozvoljene vrednosti!\n");

else{

s=1;

for(i=1;i<=n;i++)

s=s*x;

printf("Trazena vrednost je %d\n", s);

return 0;

4)

#include <stdio.h>

int main(){

int n; /* broj koji se unosi */

int s=0; /* zbir cifara */

int c; /* cifra koja se izdvaja */

printf("Unesite broj n: ");

scanf("%d", &n);

if(n<0)

printf("Uneli ste negativan broj!\n");

else{

while(n>0){

c=n%10;

s=s+c;

n=n/10;

}
printf("Zbir cifara je: %d\n", s);

return 0;

5)

#include <stdio.h>

int main () {

int n; /* Broj elemenata */

double d; /* Uneti element */

int i; /* Brojac u petlji */

double max, s; /* maksimum i aritmeticka sredina */

/* Unosimo n */

printf ("Uneti broj elemenata: ");

scanf ("%d", &n);

/* U petlji unosimo elemente i

odmah vrsimo poredjenje sa do sada najvecim,

kao i dodavanje na sumu.

Suma se pre petlje inicijalizuje na 0 */

printf ("Uneti elemente: ");

s = 0.0;

for (i = 0; i < n; i++) {

/* Unos elementa */

scanf ("%lf", &d);

/* Uslov i == 0 sluzi da prvi put postavimo max na prvi uneti


element.

Drugi uslov se koristi u kasnijim iteracijama */


if (i == 0 || d > max)

max = d;

/* Dodavanje na sumu */

s += d;

/* Delimo sumu brojem unetih brojeva, kako bismo dobili


aritmeticku sredinu.

Primetimo da se prilikom deljenja vrednost n konvertuje u tip


double implicitno,

zato sto je operand s tipa double, koji je, opet, siri tip od int-a.

Rezultat je takodje tipa double */

s /= n;

/* Ispisujemo izlazne rezultate */

printf ("Najveci uneti broj je: %f\n", max);

printf ("Aritmeticka sredina unetih brojeva je: %f\n", s);

/* uspesno zavrsavamo program */

return 0;

6)

#include <stdio.h>

int main() {

short cifra=0, max=0; /*tekuca cifra broja, max cifra*/

unsigned a; /*ucitani broj*/

printf("Unesite broj: "); scanf("%u", &a);

while(a!=0)
{cifra=a%10;

if (cifra >max) max=cifra;

a/=10;

printf("\nMax cifra je: %hd\n",max);

return 0;

7)

#include <stdio.h>

int main ()

long a; // broj sa stdin,

int b,i,c; /* tekuca cifra, indikator

rastuceg poretka, prethodna cifra*/

scanf("%ld",&a);

i=1; /* na pocetku pretpostavimo da

poredak je strogo rastuci*/

c=a%10; /* izdvajanje cifre jedinica

broja a */

a=a/10;

while (a!=0 && i!=0)

b=a%10;

a=a/10;

i=(b<c);

c=b;
}

(i==1)?

printf("Jeste strogo rastuci\n")

:printf("Nije strogo rastuci\n");

return 0;

8)

#include <stdio.h>

main()

long x; /* broj sa stdin*/

short n=0; /*broj cifara broja x*/

long stepen; /* n-ti stepen cifre broja x*/

long k1=0,k; /* suma n-tih stepena cifara broja x, pomocna kopija broja

x*/

int j; /*brojacka promenljiva*/

printf("Unesite broj:");

scanf("%ld",&x);

/* prebrojavanje broja cifara broja x*/

k=x;

while(k!=0)

n++;

k/=10;

} /* racunanje i-tih stepena broja x*/

k=x;
while(k!=0)

for (stepen=1,j=1; j<=n;j++) stepen*=(k%10); //stepen=pow(k%10,n);

k1+=stepen;

k/=10;

if(k1==x) printf("\nJeste Armstrongov broj");

else printf("\nNije Armstrongov broj");

9)

#include <stdio.h>

main()

{ int n,s,k,p,m; /*dimenzija ispisa, suma cifara, kopija broja kandidat,

kandidat za Nivenov broj, broj ispisanih brojeva*/

scanf("%d",&n);

for (k=1,s=0,m=1;m<=n;)

{ p=k;

/*racunanje sume cifara broja k*/

while (k!=0)

{ s+=k%10;

k/=10;

if (p%s==0) { printf("%d ",p);m+=1; } /*ispis Nivenovog broja */

k=p+1; s=0;

}
10)

#include <stdio.h>

main(){

int d,m,g; /*ucitani dan, mesec, godina*/

short gp; /*indikator da li je godina prestupna*/

int k,m1; /*redni broj dana, redni broj meseca koji prethode mesecu m*/

int br; /* broj dana meseca m1 godine g*/

scanf("%d.%d.%d.",&d,&m,&g);

m1=1;k=0;

while (m>m1){

switch(m1){

case 4:case 6:case 9:case 11:br=30;break;

case 2:gp=((g%4==0) && (g%100!=0)) || (g%400==0); br=28+gp;break;


default:br=31;

k+=br;

m1++;

k+=d;

printf("%d",k);

11)

#include <stdio.h>

main()

int c; /*tekuci karakter sa ulaza*/

int br_otv = 0; /*brojac zagrada*/


/*citanje teksta karakter po karakter do kraja ulaza (EOF) */

while((c=getchar()) != EOF)

if(c=='(') br_otv++;

if (c== ')')

{ br_otv--;

if (br_otv<0)

{ printf("Visak zatvorenih zagrada\n"); break; }

if (br_otv == 0) printf("Zagrade su u redu\n");

else if (br_otv >0) printf("Visak otvorenih zagrada\n");

12)

#include <stdio.h>

main()

int n; /* dimenzija */

int indeks; /* brojac */

int suma, broj; /*suma nenegativnih clanova, ucitani broj*/

/*unos dimenzije n i provera da li je taj broj u segmentu 1..50 */

do

{ printf("Unesite broj elemenata niza\n");

scanf("%d", &n);
} while (n <1 || n > 50);

/* unos n celih brojeva i racunanje sume nenegativnih*/

for( indeks=0, suma=0; indeks<n; indeks++)

scanf("%d", &broj); /* ignorisanje pozitivnih brojeva */

if(broj<0) continue;

suma+=broj; /*dodavanje nenegativnog broja sumi*/

printf("Suma nenegativnih je %d\n",suma);

1. Napisati program koji za uneti petocifren broj n (n>0) odredjuje


broj parnih i broj neparnih cifara u zapisu broja (za analizu cifara
koristiti switch naredbu).

Na primer: za broj n=23456 izlaz je "Broj parnih:3, broj neparnih:2"

2. Napisati program koji ucitava karaktere sa ulaza sve do pojave


karaktera * a potom ispisuje broj pojavljivanja cifara.

3. Napisati program koji ucitava karaktere sa ulaza sve do kraja


ulaza (EOF), a zatim ispisuje broj pojavljivanja svakog samoglasnika
(za analizu samoglasnika koristiti switch naredbu, uzeti u obzir i
mala i velika slova).

4. Napisati program koji iscrtava kvadrat dimenzije n. Npr. za uneto


n=6 iscrtava se

******
* *
* *
* *
* *
******

5. Napisati program koji iscrtava jednakokraki pravougli trougao cija


je stranica dimenzije n. Npr. za uneto n=4 iscrtava se

*
**
***
****

6. Napisati program koji za uneto n (n>=1) iscrtava slovo X visine


2n+1. Npr. za uneto n=2 iscrtava se
* *
* *
*
* *
* *
7. Napisati program koji ispisuje max dva cela broja koja se
ucitavaju sa standardnog ulaza.
Koristiti switch.
8. Napisati program koji za ucitani karakter sa standardnog ulaza
ispisuje da li je samoglasnik ili suglasnik ili slovo r.
9. Napisati program koji za uneto n ispisuje "klin" i "trougao". Npr.
za n= 5

* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *

10. Napisati C program koji za ucitano n sa standardnog ulaza


ispisuje datu sliku
rasporeda zvezdica i belina. (kolokvijum 2012)
Na primer za n=10:
* * * * * * * * * *
*****************
* * * * * * * *
*************
* * * * * *
*********
* * * *
*****
* *
*
1)

#include <stdio.h>

int main(){

int n, c;

int broj_parnih=0, broj_neparnih=0;

printf("Unesite petocifreni broj: ");

scanf("%d", &n);

if(n<10000 || n>99999){

printf("Broj nije petocifren!\n");

return 0;

while(n>0){

c=n%10;

switch(c){

case 0: case 2: case 4: case 6: case 8: broj_parnih++;


break;

case 1: case 3: case 5: case 7: case 9: broj_neparnih+


+;

n=n/10;

printf("Broj parnih: %d, broj neparnih %d\n", broj_parnih, broj_neparnih);

return 0;

}
2)

#include <stdio.h>

int main(){

char c;

int broj_cifara=0;

c=getchar();

while(c!='*'){

if(c>='0' && c<='9')

broj_cifara++;

c=getchar();

printf("Broj cifara: %d\n", broj_cifara);

return 0;

3)

#include <stdio.h>

int main(){

char c;

int broja=0;

int broje=0;

int broji=0;

int brojo=0;

int broju=0;

while((c=getchar())!=EOF){

switch(c){
case 'a': case 'A': broja++; break;

case 'e': case 'E': broje++; break;

case 'i': case 'I': broji++; break;

case 'o': case 'O': brojo++; break;

case 'u': case 'U': broju++; break;

printf("Broj pojavljivanja slova a i A: %d\n", broja);

printf("Broj pojavljivanja slova e i E: %d\n", broje);

printf("Broj pojavljivanja slova i i I: %d\n", broji);

printf("Broj pojavljivanja slova o i O: %d\n", brojo);

printf("Broj pojavljivanja slova u i U: %d\n", broju);

return 0;

4)

#include <stdio.h>

int main(void){

int n; /* dimenzija kvadrata */

int k, v; /* ideks kolone tj. vrste */

/* unosi se dimenzija kvadrata */

printf("Unesite dimenziju kvadrata: ");

scanf("%d", &n);

/*
ideja je da kvadrat koji treba iscrtati posmatramo kao jednu matricu
sa n vrsta i n kolona; nase iscrtavanje ce se odvijati po
vrstama: prva i poslednja vrsta sastoje se samo od n zvezdica,
dok se vrste

koje se nalaze izmedju, sastoje od jedne zvezde, n-2 belina i jos


jedne zvezde; naravno, posle iscrtavanja svake vrste treba preci u
naredni red;

mi cemo u petlji, recimo for, prolazti kroz vrste i iscrtavati jednu


po jednu */

/* dok vrsta v ide od 1 do n radimo sledece */

for(v=1; v<=n; v++){

/* ukoliko je u pitanju prva ili poslednja vrsta */

if(v==1 || v==n){

/* ispisujemo n zvezdica: po jednu u svakoj koloni */

for(k=1;k<=n;k++)

putchar('*');

/* i posto smo iscrtali vrstu, postavljamo i znak za


novi red */

putchar('\n');

else

/* ukoliko vrsta nije ni prva ni poslednja */

/* iscrtavamo prvu zvezdu */

putchar('*');

/* pa zatim iscrtavamo n-2 beline */

for(k=1;k<=n-2; k++)
putchar(' ');

/* i iscrtavamo poslednju zvezdu */

putchar('*');

/* potrebno je postaviti jos i znak za novi red jer smo


zavrsili sa iscrtavanjem vrste */

putchar('\n');

/* program zavrsava */

return 0;

5)

#include <stdio.h>

int main(){

int n, i, j;

printf("Unesite broj n: ");

scanf("%d", &n);

for(i=1;i<=n;i++){

for(j=1;j<=i;j++)

putchar('*');

printf("\n");

return 0;

}
6)

#include <stdio.h>

int main(){

int n, i, j;

printf("Unesite broj n: ");

scanf("%d", &n);

if(n<1){

printf("Niste uneli korektnu vrednost!\n");

return 0;

for(i=1;i<=2*n+1;i++){

for(j=1;j<=2*n+1;j++){

if(i==j || i+j==2*n+2)

putchar('*');

else

putchar(' ');

printf("\n");

return 0;

7)

#include <stdio.h>

main()
{ int a,b, max;

scanf("%d%d",&a,&b);

switch(a>b)

case 0:max=b;break;

case 1:max=a;

printf("\nmax=%d\n",max);

8)

#include <stdio.h>

main()

char x;

scanf("%c",&x);

switch(x)

case 'a': case 'e': case 'i': case 'o': case 'u':

printf("%c je samoglasnik\n",x); break;

case 'r': printf("slovo r\n"); break;

default: printf("%c je suglasnik\n",x);

9)

#include<stdio.h>

int main(){
int m,n,i,j,k;

printf("unesite n\n");

scanf("%d",&n);

for(i=1;i<=n;i++)

/*U svakom redu najpre ispisujemo i-1 belinu... */

for(j=1;j<=i-1;j++)

printf(" "); /* Moglo je i putchar(' '); */

/*Zatim iscrtavamo n-i+1 kombinaciju '* ' Tj. posle svake


zvezdice ide belina... */

for(k=n-i+1;k>0;k--)

printf("* ");

/*Odmaknemo u svakom redu isto... */

printf(" "); /* Ili npr sa tabulatorima printf("\t\t"); */

/*Zatim iscrtavamo i kombinacija '* ' Tj. posle svake zvezdice


ide belina... */

for(m=1;m<=i;m++)

printf("* ");

/*Kada zavrsimo iscrtavanje jednog reda, predjemo u novi


red... */

printf("\n");

return 0;

10)

#include <stdio.h>

int main()

{
int n,i,j;

scanf("%d",&n);

for(i=n;i>=1;i--)

for(j=0;j<n-i;j++) printf(" ");

if(i%2==0)

for(j=1;j<i*2;j++)

if(j%2==0) printf(" ");

else printf("*");

else

for(j=1;j<i*2;j++) printf("*");

for(j=0;j<n-i;j++) printf(" ");

printf("\n");

return 0;

1. Napisati program koji sa ulaza ucitava ceo broj n (n<50) i zatim


formira niz prvih n Fibonacijevih brojeva.

Na primer: ako korisnik unese n=6, izlaz treba da bude niz 1, 1, 2,


3, 5, 8.

2. Napisati program kojim se ucitava ceo broj n (n<20), dva


celobrojna niza a i b duzine n i potom formira niz c naizmenicnim
mesanjem elemenata nizova a i b.
Na primer:
ako korisnik unese n=5 i
a: 1 2 5 6 9
b: 6 3 1 8 0
rezultujuci niz je
c: 1 6 2 3 5 1 6 8 9 0

3. Napisati funkciju za izracunavanje aritmeticke sredine niza i


testirati je.
a) aritmeticka sredina je povratna vrednost funkcije
b) aritmeticka sredina se vraca preko pokazivaca

4. Napisati funkciju koja racuna broj parnih elemenata niza na


neparnim indeksima i testirati je.
a) broj trazenih elemenata je povratna vrednost funkcije
b) broj trazenih elemenata se vraca preko pokazivaca

Na primer: ako je niz 1 2 5 6 7 9 12, broj trazenih elemanata je 2

5.
a) Napisati funkciju kojom se elementi niza pomeraju za jednu
poziciju ulevo.
Na primer: ako je dat niz 1 2 3 4 5, posle pomeranja za jednu
poziciju ulevo niz je 2 3 4 5 1.

b) Koristeci prethodnu funkciju, napisati program kojim se ucitava


dimenzija niza (n<50) i elementi niza, a zatim i ceo broj k (k>0) i
ispisuje se niz dobijen pomeranjem elemenata za k pozicija ulevo.

Na primer:
ako korisnik unese n=5, niz 3 4 5 6 7 i k=3 rezultat je 6 7 3 4 5

1)

#include<stdio.h>

#define MAX_DUZINA 50

int main(){

int f[MAX_DUZINA];

int n;

int i;

/* ucitavamo broj elemenata niza */

printf("Unesite broj n: ");

scanf("%d", &n);
if(n<=0){

printf("Niste uneli pozitivan broj!\n");

return 0;

/* izracunavamo elemente niza */

f[0]=1;

f[1]=1;

for(i=2;i<n;i++)

f[i]=f[i-1]+f[i-2];

/* ispisujemo elemente niza*/

for(i=0; i<n; i++)

printf("%d ", f[i]);

printf("\n");

return 0;

2)

#include<stdio.h>

#define MAX_DUZINA 50

int main(){

int a[MAX_DUZINA];

int b[MAX_DUZINA];

int c[2*MAX_DUZINA];

int n;

int i;
/* ucitavamo broj elemenata niza */

printf("Unesite broj elemenata: ");

scanf("%d", &n);

if(n<=0){

printf("Niste uneli pozitivan broj!\n");

return 0;

/* ucitavamo elemente niza a */

printf("Unesite elemente niza a: ");

for(i=0;i<n;i++)

scanf("%d", &a[i]);

/* ucitavamo elemente niza b */

printf("Unesite elemente niza b: ");

for(i=0;i<n;i++)

scanf("%d", &b[i]);

/* formiramo niza c */

for(i=0;i<n;i++){

c[2*i]=a[i];
c[2*i+1]=b[i];

/*

II nacin

for(i=0;i<2*n; i++)

if(i%2==0)

c[i]=a[i/2];

else

c[i]=b[i/2];

*/

/* ispisujemo elemente niza c*/

for(i=0; i<2*n; i++)

printf("%d ", c[i]);

printf("\n");

return 0;

3)

#include <stdio.h>

#define MAX_DUZINA 50
float asredina1(int a[], int n){

int s=0, i;

for(i=0;i<n;i++)

s+=a[i];

return (float)s/n;

void asredina2(int a[], int n, float* ps){

int i;

*ps=0;

for(i=0;i<n;i++)

*ps+=a[i];

*ps=*ps/n;

int main(){

int a[MAX_DUZINA];

int n;
int i;

float as; /* aritmeticka sredina */

/* ucitavamo broj elemenata niza */

printf("Unesite broj n: ");

scanf("%d", &n);

if(n<=0){

printf("Niste uneli pozitivan broj!\n");

return 0;

/* ucitavamo elemente niza */

printf("Unesite elemente niza a: ");

for(i=0;i<n;i++)

scanf("%d", &a[i]);

/* ispisujemo rezultate funkcija */

as=asredina1(a,n);

printf("Aritmeticka sredina izracunata funkcijom asredina1: %f\n", as);

asredina2(a,n, &as);

printf("Aritmeticka sredina izracunata funkcijom asredina2: %f\n", as);

return 0;

4)

#include <stdio.h>

#define MAX_DUZINA 50
int prebroj1(int a[], int n){

int b=0, i;

for(i=1;i<n;i+=2)

if(a[i]%2==0)

b++;

return b;

void prebroj2(int a[], int n, int* pb){

int i;

*pb=0;

for(i=1;i<n;i+=2)

if(a[i]%2==0)

(*pb)++;

int main(){

int a[MAX_DUZINA];

int n;

int i;

int b; /* broj trazenih elemenata */

/* ucitavamo broj elemenata niza */

printf("Unesite broj n: ");

scanf("%d", &n);

if(n<=0){

printf("Niste uneli pozitivan broj!\n");


return 0;

/* ucitavamo elemente niza */

printf("Unesite elemente niza a: ");

for(i=0;i<n;i++)

scanf("%d", &a[i]);

b=prebroj1(a,n);

printf("Broj elemenata izracunat funkcijom prebroj1: %d\n", b);

prebroj2(a,n, &b);

printf("Broj elemenata izracunat funkcijom prebroj2: %d\n", b);

return 0;

5)

#include <stdio.h>

#define MAX_DUZINA 50

void pomeri(int a[], int n){

int i, pom;

pom=a[0];

for(i=0;i<n-1;i++)

a[i]=a[i+1];

a[n-1]=pom;

int main(){

int a[MAX_DUZINA];
int n;

int i;

int k; /* broj pomeranja */

/* ucitavamo broj elemenata niza */

printf("Unesite broj n: ");

scanf("%d", &n);

if(n<=0){

printf("Niste uneli pozitivan broj!\n");

return 0;

/* ucitavamo elemente niza */

printf("Unesite elemente niza a: ");

for(i=0;i<n;i++)

scanf("%d", &a[i]);

/* ucitavamo broj k */

printf("Unesite broj k: ");

scanf("%d", &k);

/* pomeramo elemente niza za k pozicija ulevo */

for(i=1;i<=k;i++)

pomeri(a,n);

/* ispisujemo elemente novog niza */

for(i=0;i<n;i++)

printf("%d ", a[i]);

printf("\n");

return 0;

}
1. Napisati funkciju

int nalazi(int a[], int n, int x)


kojom se proverava da li se element x nalazi u nizu a duzine n.
Povratna vrednost treba da bude -1 ukoliko se element ne nalazi u
nizu tj. indeks prvog pojavljivanja elementa ako se element nalazi u
nizu.

Na primer:
za niz 2 3 4 5 i element 7 povratna vrednost funkcije je -1
za niz 9 4 1 8 i element 1 povratna vrednost funkcije je 2

U glavnom programu ucitati dimenziju niza (n<20) i elemente niza i


testirati rad funkcije.

2.
a) Napisati funkciju
int broj_pojavljivanja(int a[], int n, int x)
koja racuna broj pojavljivanja elementa x u nizu a duzine n.

b) Modifikovati prethodnu funkciju u funkciju


void broj_pojavljivanja(int a[], int n, int x, int* bp)
gde se broj pojavljivanja elementa x vraca preko pokazivaca bp.

U glavnom programu ucitati dimenziju niza (n<20) i elemente niza i


testirati rad funkcija.

3. Napisati funkciju
int issort(int a[], int n)
kojom se proverava da li je niz a duzine n sortiran u rastucem
poretku. Povratna vrednostu treba da bude 1 ako je niz rastuci ili 0
ako niz nije rastuci.

Na primer: za niz 1 2 3 4 5 povratna vrednost je 1, dok je za niz 1 3


4 2 6 povratna vrednost 0

U glavnom programu ucitati dimenziju niza (n<20) i elemente niza i


testirati rad funkcija.

4. Napisati funkciju
void ubaci(int a[], int* pn, int x)
koja ubacuje element x u rastuci niz a tako da niz ostane u rastucem
poretku. Funkcija azurira dimenziju niza preka pokazivaca pn.

Na primer: za niz 3 4 8 9 9 15 duzine 6 i element 5 novi niz je 3 4 5


8 9 9 15 i nova duzina je 7.
U glavnom programu ucitati dimenziju niza (n<20) i elemente niza i
testirati rad funkcije.

5. Napisati funkciju
void izbaci(int a[], int *pn, int x)
koja iz niza a izbacuje sva pojavljivanja elementa x. Funkcija
azurira dimenziju niza preko pokazivaca pn.

Na primer: za niz 8 4 2 8 0 -3 duzine 6 i element 8 novi niz je 4 2


0 -3 i nova duzina je 4.

U glavnom programu ucitati dimenziju niza (n<20) i elemente niza i


testirati rad funkcije.

6. Napisati funkciju
void sort(int a[], int n, int poredak)
kojom se sortiraju elementi niza a u zadatom poretku. Poredak moze
biti rastuci (ako je treci argument jednak 1) ili opadajuci (ako je
treci argument jednak -1).

U glavnom programu ucitati dimenziju niza (n<20) i elemente niza i


testirati rad funkcije.

1)

#include <stdio.h>

int nalazi(int a[], int n, int x){

int i;

for(i=0;i<n;i++){

if(a[i]==x)

return i;

return -1;

void ucitaj_niz(int a[], int n){

int i;

for(i=0;i<n;i++)
scanf("%d", &a[i]);

int main(){

int a[20], n, x;

int poz;

printf("Unesite broj elemenata niza: ");

scanf("%d", &n);

if(n>20){

printf("Unos nije korektan: n<=20\n");

return 0;

printf("Unesite elemente niza: ");

ucitaj_niz(a,n);

printf("Unesite trazeni element: ");

scanf("%d", &x);

poz=nalazi(a, n, x);

if(poz==-1)

printf("Element %d se ne nalazi u nizu!\n", x);

else

printf("Element %d se nalazi u nizu na poziciji %d!\n", x, poz);

return 0;

2)

#include <stdio.h>

int broj_pojavljivanja1(int a[], int n, int x){

int i;
int bp=0;

for(i=0;i<n;i++){

if(a[i]==x)

bp++;

return bp;

void broj_pojavljivanja2(int a[], int n, int x, int* bp){

int i;

*bp=0;

for(i=0;i<n;i++){

if(a[i]==x)

(*bp)++;

void ucitaj_niz(int a[], int n){

int i;

for(i=0;i<n;i++)

scanf("%d", &a[i]);

int main(){

int a[20], n, x;

int broj;

printf("Unesite broj elemenata niza: ");

scanf("%d", &n);

if(n>20){
printf("Unos nije korektan: n<=20\n");

return 0;

printf("Unesite elemente niza: ");

ucitaj_niz(a,n);

printf("Unesite trazeni element: ");

scanf("%d", &x);

/* I nacin: */

broj=broj_pojavljivanja1(a, n, x);

printf("Element %d se pojavljuje u nizu %d puta.\n", x, broj);

/*II nacin: */

broj_pojavljivanja2(a,n,x, &broj);

printf("Element %d se pojavljuje u nizu %d puta.\n", x, broj);

return 0;

3)

#include <stdio.h>

int issort(int a[], int n){

int i;

for(i=0;i<n-1;i++){

if(a[i]>a[i+1])

return 0;

return 1;

void ucitaj_niz(int a[], int n){


int i;

for(i=0;i<n;i++)

scanf("%d", &a[i]);

int main(){

int a[20], n, x;

int poz;

printf("Unesite broj elemenata niza: ");

scanf("%d", &n);

if(n>20){

printf("Unos nije korektan: n<=20\n");

return 0;

printf("Unesite elemente niza: ");

ucitaj_niz(a,n);

if(issort(a,n)==1)

printf("Niz je sortiran u rastucem poretku!\n");

else

printf("Niz nije sortiran u rastucem poretku!\n");

return 0;

4)

#include <stdio.h>

void ubaci(int a[], int* pn, int x){


int i,j;

/* tazimo poziciju na koju treba smestiti element x */

for(i=0;i<*pn;i++){

if(x<a[i])

break;

/* na i-tu poziciju treba smestiti element x pa pomeramo sve elemente

sa indeksom vecim ili jednakim od i za jednu poziciju udesno */

for(j=*pn-1; j>=i; j--)

a[j+1]=a[j];

/* smestamo element x */

a[i]=x;

/* uvecavamo broj elemenata niza za 1 */

(*pn)++;

void ucitaj_niz(int a[], int n){

int i;

for(i=0;i<n;i++)

scanf("%d", &a[i]);

void pisi_niz(int a[], int n){

int i;

for(i=0;i<n;i++)

printf("%d ", a[i]);

printf("\n");

}
int main(){

int a[20+1], n, x;

/* ucitavamo broj elemenata niza */

printf("Unesite broj elemenata niza: ");

scanf("%d", &n);

if(n>20){

printf("Unos nije korektan: n<=20\n");

return 0;

/* ucitavamo niz */

printf("Unesite elemente niza (niz mora biti sortiran!):");

ucitaj_niz(a,n);

/* ucitavamo element za ubacivanje u niz */

printf("Unesite broj x: ");

scanf("%d", &x);

/* ubacujemo element */

ubaci(a,&n,x);

/* ispisujemo novu dimenziju niza */

printf("Broj elemenata novog niza je %d\n", n);

/* ispisujemo novi niz */

pisi_niz(a,n);

return 0;

5)

#include <stdio.h>

void izbaci(int a[], int* pn, int x){


int i,j;

for(i=0;i<*pn; ){

/* proveravamo da li je tekuci element jednak broju x */

if(a[i]==x){

/* ako jeste, sve elemente niza sa indeksom vecim od


i pomeramo za jednu poziciju ulevo */

for(j=i; j<*pn-1; j++)

a[j]=a[j+1];

/* i azuriramo informaciju o broju elemenata niza */

(*pn)--;

else

/* prelazimo na naredni element */

i++;

void ucitaj_niz(int a[], int n){

int i;

for(i=0;i<n;i++)

scanf("%d", &a[i]);

void pisi_niz(int a[], int n){

int i;

for(i=0;i<n;i++)

printf("%d ", a[i]);

printf("\n");

}
int main(){

int a[20], n, x;

/* ucitavamo broj elemenata niza */

printf("Unesite broj elemenata niza: ");

scanf("%d", &n);

if(n>20){

printf("Unos nije korektan: n<=20\n");

return 0;

/* ucitavamo niz */

printf("Unesite elemente niza: ");

ucitaj_niz(a,n);

/* ucitavamo element za izbacivanje*/

printf("Unesite broj x: ");

scanf("%d", &x);

/* izbacujemo element */

izbaci(a,&n,x);

/* ispisujemo novu dimenziju niza */

printf("Broj elemenata novog niza je %d\n", n);

/* ispisujemo novi niz */

pisi_niz(a,n);

return 0;

6)

#include <stdio.h>

int sort(int a[], int n, int poredak){


int i,j,tmp;

/* ako je poredak rastuci */

if(poredak==1){

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(a[i]>a[j]){

tmp=a[i];

a[i]=a[j];

a[j]=tmp;

else{

/* ako je poredak opadajuci */

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(a[i]<a[j]){

tmp=a[i];

a[i]=a[j];

a[j]=tmp;

void ucitaj_niz(int a[], int n){

int i;

for(i=0;i<n;i++)

scanf("%d", &a[i]);
}

void pisi_niz(int a[], int n){

int i;

for(i=0;i<n;i++)

printf("%d ", a[i]);

printf("\n");

int main(){

int a[20], n, p;

/* ucitavamo broj elemenata niza */

printf("Unesite broj elemenata niza: ");

scanf("%d", &n);

if(n>20){

printf("Unos nije korektan: n<=20\n");

return 0;

/* ucitavamo niz */

printf("Unesite elemente niza: ");

ucitaj_niz(a,n);

/* ucitavamo poredak */

printf("Unesite poredak (1 za rastuci ili -1 za opadajuci): ");

scanf("%d", &p);

if(p!=1 && p!=-1){


printf("Nekorektan poredak!\n");

return 1;

/* sortiramo niz */

sort(a,n,p);

/* ispisujemo niz */

pisi_niz(a,n);

return 0;

1. Napisati funkciju

void zameni(char s[])


koja u niski s maksimalne duzine 20 karaktera zamenjuje svako
pojavljivanje slova a slovom b.

Na primer: niska dan se zamenjuje niskom dbn

U glavnom programu ucitati nisku sa ulaza i testirati funkciju.

2. Napisati funkciju
void zameni3(char s[], char ns[])
koja zamenjuje svaki karakter niske s sa 3 naredna karaktera po
abededi i tako dobijenu nisku cuva u ns.

Na primer: nisku ANA treba modifikovati u BCDOPQBCD

Napisati potom program koji sa ulaza ucitava 5 niski maksimalne


duzine 20 karaktera i ispisuje odgovarajuce modifikacije.

3. Napisati program kojim se sa ulaza ucitava ceo broj k (k<=10) i


niska s maksimalne duzine 20 karaktera, a zatim se ispisuje nova
niska formirana nadovezivanje polazne niske n puta.

Na primer: za unos 4 i ana izlaz je ana_ana_ana_ana

4. Napisati funkciju
int palindrom (char s[])
kojom se proverava da li je zadata niska s palindrom (za nisku kazemo
da je palindrom ako se isto cita i sa leve i sa desne strane).

Na primer: niska anavolimilovana je palindrom


U glavnom programu ucitati nisku i testirati rad funkcije.

5. Napisati funkciju
int anagrami (char s1[], char s2[])
kojom se proverava da li su dve zadate niske anagrami (za dve niske
kazemo da su anagrami ako se od slova prve niske moze formirati druga
niska).

Na primer: ortoped i torpedo

U glavnom programu ucitati dve niske maksimalne duzine 20 i testirati


rad funkcije.

1)

#include <stdio.h>

#define MAX_DUZINA 20

/* funkcija u niski s zamenjuje svako pojavljivanje karaktera a karakterom b */

void zameni_a_sa_b(char s[]){

int i;

for(i=0;s[i]!='\0';i++){

if(s[i]=='a')

s[i]='b';

int main(void){

/* niska je duzine MAX_DUZINA+1:

MAX_DUZINA=2o dozvoljenih mesta za smestanje karaktera plus


dodatno mesto za terminirajucu nulu

*/
char s[MAX_DUZINA+1];

/* ucitavamo nisku */

printf("Unesite nisku: ");

scanf("%s", s);

/* pozivamo funkciju */

zameni_a_sa_b(s);

/* ispisujemo rezultujucu nisku */

printf("Izmenjena niska: %s\n", s);

return 0;

2)

#include <stdio.h>

#define MAX_DUZINA 20

/* funkcija formira od niske s nisku ns tako sto svaki

karakter niske s zamenjuje sa tri sledeca karaktera abecede */

void zameni3(char s[], char ns[]){

int i;

/* prolazimo kroz nisku s */

for(i=0;s[i]!='\0';i++){

/* na odgovarajuca mesta u niski ns upisujemo

trazene karaktere:

ako je c ASCII vrednost karaktera s[i],

c+1 je ASCII kod sledeceg karakere,

c+2 narednog i tako redom ..*/

ns[3*i]=s[i]+1;

ns[3*i+1]=s[i]+2;
ns[3*i+2]=s[i]+3;

/* upisujemo terminirajucu nulu na kraju niske ns */

ns[3*i]='\0';

int main(void){

/* niska koju korisnik unosi */

char s[MAX_DUZINA+1];

/* niska koja se formira: OBRATITI PAZNJU da je 3 puta duza */

char ns[3*MAX_DUZINA+1];

int i;

/* u petlji.. */

for(i=0;i<5;i++){

/* ucitavamo nisku po nisku */

printf("Unesite nisku: ");

scanf("%s", s);

/* formiramo novu nisku */

zameni3(s,ns);

/* i ispisujemo je */

printf("Nova niska: %s\n", ns);

return 0;

3)

#include <stdio.h>
#include <string.h>

#define MAX_DUZINA 20

/* funkcija formira nisku ns nadovezivanjem niske s k

puta tako sto se izmedju ubacuje podvlaka */

void formiraj_novu_nisku(char s[], char ns[], int k){

int n;

int i;

/* duzina niske s */

n=strlen(s);

/* u petlji brojimo koliko puta smo nadovezali nisku */

for(i=0;i<k;i++){

/* nisku smestamo na odgovarajucu poziciju */

strcpy(ns+i*(n+1),s);

/* i upisujemo potom znak za podvlacenje */

ns[i*(n+1)+n]='_';

/* na kraju dodajemo terminirajucu nulu */

ns[k*(n+1)-1]='\0';

int main(void){

/* niska koju korisnik unosi sa ulaza */

char s[MAX_DUZINA];

/* nova niska koja se formira: OBRATITI PAZNJU na duzinu nove


niske */

char ns[(MAX_DUZINA+1)*10];

/* broj koji oznacava koliko puta treba nadovezati niske */


int k;

/* ucitava se niska sa ulaza */

printf("Unesite nisku: ");

scanf("%s", s);

/* potom i broj ponavljanja ucitane niske */

printf("Unesite broj ponavljanja niske: ");

scanf("%d", &k);

/* ukoliko je uneti broj veci od maksimalnog dozvoljenog broja

ponavljanja, postavljamo ga na maksimalnu vrednost;

u ovoj situaciji smo mogli i obavestiti korisnika o

prekoracenju maksimalne vrednosti i prekinuti sa

izvrsavanjem programa

*/

if(k>10)

k=10;

/* pozivamo funkciju kojom se formira nova niska */

formiraj_novu_nisku(s,ns,k);

/* i ispisujemo je*/

printf("Nova niska je: %s\n", ns);

return 0;

4)

#include <stdio.h>

#include <string.h>

#define MAX_DUZINA 20

/* funkcija palindrom vraca vrednost 1 ako je niska s palindrom, inace vraca


vrednost 0 */
int palindrom(char s[]){

int n;

int i;

n=strlen(s);

for(i=0;i<n/2;i++)

if(s[i]!=s[n-1-i])

return 0;

return 1;

int main(){

char s[MAX_DUZINA+1];

printf("Unesite nisku: ");

scanf("%s", s);

if(palindrom(s)==1)

printf("Uneta niska je palindrom!\n");

else

printf("Uneta niska nije palindrom!\n");

return 0;

5)

#include <stdio.h>

#include <string.h>

/* konstanta koja oznacava maksimalan broj karaktera niske */


#define MAX_DUZINA 20

/* funkcija uredi sortira karaktere niske u rastucem poretku */

void uredi(char s[]){

int i, j, n;

char tmp;

/* odredjujemo duzinu niske s */

n=strlen(s);

/* i sortiramo... */

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(s[i]>s[j]){

tmp=s[i];

s[i]=s[j];

s[j]=tmp;

/* funkcija anagrami() proverava da li su niske s1 i s2 anagrami;

ideja je sortirati karaktere i prve i druge niske, a

zatim uporediti da li su te dve niske iste;

ukoliko jesu, unete reci su anagrami

*/

int anagrami( char s1[], char s2[]){

/* uredjujemo karaktere prve niske */

uredi(s1);
/* uredjujemo karaktere druge niske */

uredi(s2);

/* ukoliko su niske jednake */

if(strcmp(s1,s2)==0)

/* vracamo indikator 1 */

return 1;

/* dok u suprotnom vracamo kao indikator 0 */

return 0;

int main(void){

/* niske koje unosi korisnik */

char s1[MAX_DUZINA+1], s2[MAX_DUZINA+1];

/* ucitavamo prvu nisku */

printf("Unesite prvu nisku: ");

scanf("%s", s1);

/* ucitavamo drugu nisku */

printf("Unesite drugu nisku: ");

scanf("%s", s2);

/* proveravamo da li su niske anagrami */

if(anagrami(s1,s2)==1)

printf("Unete niske su anagrami!\n");

else

printf("Unete niske nisu anagrami!\n");

return 0;

}
1. Data je struktura

struct complex{
double re;
double im;
}

a) Napisati funkciju koja racuna moduo kompleksnog broja.


b) Napisati funkciju koja za dati kompleksan broj nalazi njemu
komnjugovano kompleksni broj.
c) Napisati funkciju koja izracunava zbir dva kompleksna broja.
d) Napisati funkciju koja izracunava proizvod dva kompleksna broja.

U glavnom programu testirati rad funkcija.

2. Data je struktura
struct Student{
char ime[10];
char prezime[10];
char smer;
double prosek;
}
a) Napisati funkciju koj ucitava sa standardnog ulaza podatke o
studentu.
b) Napisati funkciju koja ispisuje podatke o studentu na standardni
izlaz.

U glavnom programu ucitati niz od 5 studenata i :


1) ispisati imena i prezimena onih koji su na smeru R
2) ispisati podatke o studentu sa najvecim prosekom
3) sortirati niz prema prezimenima i ispisati ga

1)

#include <stdio.h>

#include <math.h>

struct complex{

double re;

double im;

};

double moduo(struct complex c){


return sqrt(c.re*c.re+c.im*c.im);

struct complex konjugovano(struct complex c){

struct complex cc;

cc.re=c.re;

cc.im=-c.im;

return cc;

struct complex zbir(struct complex u, struct complex v){

struct complex w;

w.re=u.re+v.re;

w.im=u.im+v.im;

return w;

struct complex proizvod(struct complex u, struct complex v){

struct complex w;

w.re=u.re*v.re-u.im*v.im;

w.im=u.re*v.im+u.im*v.re;

return w;

struct complex ucitaj(){

struct complex c;

printf("Unesite realan deo: ");

scanf("%lf", &c.re);

printf("Unesite imaginaran deo: ");


scanf("%lf", &c.im);

return c;

void pisi(struct complex c){

if(c.im>0)

printf("%lf+i*%lf\n", c.re, c.im);

else

if(c.im<0)

printf("%lf-i*%lf\n", c.re, fabs(c.im));

else

printf("%lf\n", c.re);

int main(){

struct complex u, v;

struct complex z, p, w;

/* ucitavamo kompleksne brojeve */

u=ucitaj();

v=ucitaj();

/* moduo kompleksnog broja */

printf("Moduo broja u je: %lf\n", moduo(u));

/* konjugovano kompleksni broj */

printf("Konjugovano kompleksni broj broja v je: ");

w=konjugovano(v);

pisi(w);

/* zbir kompleksinih brojeva */


z=zbir(u,v);

printf("Zbir kompleksnih brojeva je: ");

pisi(z);

/* proizvod kompleksinih brojeva */

p=proizvod(u,v);

printf("Proizvod kompleksnih brojeva je: ");

pisi(p);

return 0;

2)

#include <stdio.h>

#include <string.h>

#define BROJ_STUDENATA 3

/* definisemo strukturu koja sadrzi osnovne informacije o studentu;

koristili smo typedef operator za preimenovanje para reci struct

student u Student */

typedef struct student{

char ime[10];

char prezime[10];

char smer;

double prosek;

}Student;

void ucitaj_studenta(Student* pS){

printf("Unesite informacije o studentu:\n");

printf("Ime: ");

scanf("%s", pS->ime);
printf("Prezime: ");

scanf("%s", pS->prezime);

printf("Smer: \n\t r-racunarstvo \

\n\t m-teorijska matematika\

\n\t v-verovatnoca i statistika\

\n\t l- profesor\

\n\t a-astronomija\n");

getchar(); /* neophodno da bismo pokupili znak za novi red od


prethodnog unosa*/

printf("Unesite odgovarajuce slovo: ");

scanf("%c", &pS->smer);

printf("Prosek: ");

scanf("%lf", &pS->prosek);

void pisi_studenta(Student* pS){

printf("Ime: %s\n", pS->ime);

printf("Prezime: %s\n", pS->prezime);

printf("Smer: ");

switch(pS->smer){

case 'r': printf("racunarstvo\n"); break;

case 'm': printf("teorijska matematika\n"); break;

case 'v': printf("verovatnoca i statistika\n"); break;

case 'l': printf("profesor matematika i rac.\n"); break;

case 'a': printf("astronomija\n");

printf("Prosek: %lf\n", pS->prosek);

printf("\n\n");
}

void sortiraj_po_prezimenu(Student s[], int n){

int i,j;

Student tmp;

for(i=0;i<n-1;i++)

for(j=i+1;j<n;j++)

if(strcmp(s[i].prezime,s[j].prezime)>0){

tmp=s[i];

s[i]=s[j];

s[j]=tmp;

int main(void){

/* deklarisemo niz duzine BROJ_STUDENATA=5 koji sadrzi

inforamcije o studentima;

OBRATITI PAZNJU da su s[0], s[1], s[2], s[3] i s[4]

strukture tipa Student i da se odgovarajucim poljima

moze pristupiti sa npr. s[2].ime s[3].prosek ... */

Student s[BROJ_STUDENATA];

double max; /* brojna vrednost maksimalnog proseka */

int redni_broj; /* redni broj studenta sa maksimalnim prosekom */

int i;

/* ucitavamo inforamcije o studentima */


for(i=0;i<BROJ_STUDENATA;i++)

ucitaj_studenta(&s[i]);

/* ispisujemo inforamcije o onima koji su na smeru R */

printf("Studenti smera R: \n");

printf("---------------------------------------------\n");

for(i=0;i<BROJ_STUDENATA;i++)

if(s[i].smer=='r')

pisi_studenta(&s[i]);

/* pronalazimo studenta sa najvecim prosekom */

max=s[0].prosek;

redni_broj=0;

for(i=1;i<BROJ_STUDENATA;i++)

if(s[i].prosek>max){

max=s[i].prosek;

redni_broj=i;

printf("Student sa najvecim prosekom: \n");

printf("----------------------------------------\n");

pisi_studenta(&s[redni_broj]);

/* pozivamo funkciju koja sortira niz prema prezimenu */

sortiraj_po_prezimenu(s,BROJ_STUDENATA);

/* i ispisujemo informacije o svim studentima */

printf("Spisak studenata uredjen po prezimenima:\n");

printf("-----------------------------------------------\n");

for(i=0;i<BROJ_STUDENATA;i++)
pisi_studenta(&s[i]);

return 0;

You might also like