Uvod u C   Autor: Milan Miščević
 
Jezik
Istorijat
C++
Kompajler
Razvojni ciklus
Hello.c
Greške
Komentari
Varijable
Printf i scanf
Include i main
Zbir.c
Konstante
Naredbe i izrazi
Operatori I
Zadaci I nivo
Operatori II
If/else
Zadaci II nivo
For
Zadaci III nivo
While
While
Zadaci IV nivo
Funkcije
Zadaci V nivo
Nizovi
Zadaci VI nivo
Zadaci
Rječnik
Literatura

abc C
  Pravite aplikaciju koja ispisuje brojeve izvučene na lotu. Loto ima 7 brojeva i biće vam potrebno 7 cijelobrojnih varijabli.
      int broj1, broj2, broj3, broj4, broj5, broj6, broj7;
Sreće što nema više brojeva. Zar ne bi bilo dobro kada bi mogli sve te brojeve staviti u jednu varijablu? Bilo bi dobro. U tu svrhu, nizovi će nam biti od pomoći.

Niz (eng. Array) je indeksirani skup podataka. Šta to znači? Zamislite kariku kao cijelobrojnu varijablu tipa int. Niz je lanac, kod kojeg svaka karika ima svoj redni broj, tj. indeksirana je.

Deklaracija niza

Niz se često podvodi pod varijable, jer se tako "ponaša". Poput varijabli, niz se mora deklarisati. To se radi na sledeći način:
      tip_podataka ime_niza[broj_clanova];
Dakle, deklaracija za niz za loto treba da izgleda ovako:
      int loto[7];
Niz se može deklarisati i na sledeći način:
      const int x = 7;

      int loto[x];
gdje je indeksna vrijednost varijabla ili konstanta, koja ima vrijednost 7.

Što se imena nizova tiče, važe ista pravila kao i za funkcije, osnosno varijable.

Pristupanje nizu

Ako želimo prvom članu niza pridružiti vrijednost 5, onda moramo ukucati sledeće:
      loto[0] = 5;
Nula nije greška. Prvi član niza indeksiran je nulom, drugi jedinicom, treći dvojkom, zadnji (kod nas) šesticom. To dobro zapamtite.

Da bi ispisali vrijednost prvog člana, trebamo ukucati sledeće:
      printf("Prvi clan niza iznosi %d.", loto[0]);
      Prvi clan niza iznosi 5.
Sada, kada znamo sve ovo, lako je napraviti aplikaciju za ispisivanje brojeva izvučenih na lotu.
      #include <stdio.h>

      int a, clan;

      int loto[7];

      main()
      {
              printf("Unesite brojeve izvucene na lotu.\n");
              clan = 1;
              for(a = 0; a < 7; a++)
              {
                      printf("%d. broj je: ", clan);
                      scanf("%d", &loto[a]);
                      clan++;
              }
              clan = 1;
              printf("\n");
              for(a = 0; a < 7; a++)
              {
                      printf("%d. broj je %d\n",
                              clan, loto[a]);
                      clan++;
              }
              return 0;
      }
      Unesite brojeve izvucene na lotu.
      1. broj je: 1
      2. broj je: 13
      3. broj je: 14
      4. broj je: 17
      5. broj je: 24
      6. broj je: 35
      7. broj je: 39

      1. broj je 1
      2. broj je 13
      3. broj je 14
      4. broj je 17
      5. broj je 24
      6. broj je 35
      7. broj je 39
Početne vrijednosti članova niza

Početne vrijednosti članovima niza se na ovaj način pridružuju:
      int loto[7] = {1, 13, 14, 17, 24, 35, 39};
      printf("Treci clan je %d.", loto[2]);
      Treci clan je 14.
Višedimenzioni nizovi

Višedimenzioni nizovi su ustvari nizovi nizova. Jednodimenzioni nizove, koje smo do sada radili, imaju varijable za članove. Višedimenzioni nizovi imaju nizove za članove.

Primjeri deklaracije višedimenzionog niza:
      int ploca[3][3];                /* Dvodimenzioni. */
      int sah[8][8];                  /* Dvodimenzioni. */
      float paralelopiped[5][34][14]; /* Trodimenzioni. */
Jednodimenzioni niz zamislite kao lanac, dvodimenzioni kao šahovsku tablu, trodimenzioni kao neku 3D tijelo, a ostale prepuštam vašoj mašti.

Pristup višedimenzionim nizovima je malo zeznut. Kod dvodimenzionog niza prvo se pristupa unutrašnjem nizu prvog člana vanjskog niza, pa unutrašnjem nizu drugog člana, pa tako do unutrašnjeg niza zadnjeg člana vanjskog niza. Sa rastom broja dimenzija, situacija se samo sve više i više usložnjava.

U sledećem primjeru zadate su i ispisane početne vrijednosti dvodimenzionog niza.
      #include <stdio.h>

      int a, b;

      int ploca[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};

      main()
      {
              for(a = 0; a < 3; a++)
              {
                      for(b = 0; b < 3; b++)
                      {
                              printf("ploca[%d][%d] = %d\n",
                                      a, b, ploca[a][b]);
                      }
              }
              return 0;
      }
      ploca[0][0] = 1
      ploca[0][1] = 2
      ploca[0][2] = 3
      ploca[1][0] = 4
      ploca[1][1] = 5
      ploca[1][2] = 6
      ploca[2][0] = 7
      ploca[2][1] = 8
      ploca[2][2] = 9
Dakle, broj 1 je pridružen prvom članu unutrašnjeg niza prvog člana vanjskog niza (ploca[0][0]). Broj 2 je pridružen drugom članu unutrašnjeg niza prvog člana vanjskog niza (ploca[0][1]). Broj 3 je pridružen trećem članu unutrašnjeg niza prvog člana vanjskog niza (ploca[0][2]). Broj 4 je pridružen prvom članu unutrašnjeg niza drugog člana vanjskog niza (ploca[1][0]). Broj 9 je pridružen trećem članu unutrašnjeg niza trećeg člana vanjskog niza (ploca[2][2]).

Za ispis višedimezionih nizova koriste se ugniježene petlje.

Preporuka: Ovdje možete pronaći pripremljene zadatke za vježbanje nizova.

Zadaci V nivo - Zadaci VI nivo