NIZ KAO ARGUMENT FUNKCIJE
Slijedeći program pokazuje
kako funkcija prima niz kao
argument.
#include <stdio.h>
int maximum( int [] );
/* ANSI prototip funkcije */
int maximum( int values[5] )
{
int max_value, i;
max_value = values[0];
for( i = 0; i < 5; ++i )
if( values[i] > max_value )
max_value = values[i];
return max_value;
}
main()
{
int values[5], i, max;
printf("Unesite 5 brojeva\n");
for( i = 0; i < 5; ++i )
scanf("%d", &values[i] );
max = maximum( values );
printf("\nMaksimalna vrijednost je %d\n", max );
}
Ispis programa
Unesite 5 brojeva
7 23 45 9 121
Maksimalna vrijednost je 121
Zabilješka: Program definira niz od pet elemenata (vrijednosti) i inicijalizira svaki element na vrijednost koju upiše korisnik. Niz values se tada predaje funkciji. Deklaracija
int maximum( int values[5] )definira ime funkcije maximum, i deklarira da je povratna vrijednost integer (rezultat), te da prima tip podatka values, koji je deklariran kao niz pet integera. Niz array u glavnom programu je sada poznat kao niz values unutar funkcije maximum. TO NIJE KOPIJA, VEĆ ORIGINAL.
To znači da će svaka promjena izmijeniti originalni niz.
Lokalna varijabla
max_value se postavlja na prvi element niza, te se izvršava for
petlja koja prelazi preko svakog elementa u nizu i najveću vrijednost pridružuje
varijabli max_value. Ovaj broj se zatim vraća glavnom programu preko
izraza return, i pridružuje se varijabli max u glavnom programu.