///////////////////////////////////////////////////////////////////////
// ITS – Visoka Škola Strukovnih Studija Za Informacione Tehnologije
// https://www.its.edu.rs/
// Predmet: Osnovi Programiranja – Programski jezik C
//
// Primer: Program koji proverava da li ucitani niz brojeva
//            odgovara fibonacijevom nizu.
//            Niz brojeva (koji se unosi sa tastature) moze imati najmanje 3 elementa.
///////////////////////////////////////////////////////////////////////

#include <stdio.h>

#define N 100

main()
{
  int niz[N]; // duzina niza jednaka je konstanti N

  //pomocna promenljiva temp postavljena je na dva
  int i, duzina, temp=2, j;

  // poruka korisniku
  printf("Unesite duzinu niza, koja moze biti najmanje 3, a najvise %d:
", N);

  scanf("%d", &duzina); // unos duzine niza

  while(duzina>=3 && duzina<=N) // provera da li je uneta duzina niza u opsegu od 3 do N
  // ako nije, onda program nece ni ulaziti u while petlju
  {
    for(i=1; i<=duzina; i++)
    {
      printf("Unesite clan niza x[%d]:", i-1); // poruka korisniku

      scanf("%d", &j); // unos clanova niza, a vrednosti se dodeljuju pomocnoj promenljivoj 'j'

      niz[i-1]=j; // dodela vrednosti odgovarajucem clanu niza
    }

    for(i=2; i<duzina; i++)
    {
      if(niz[i]==(niz[i-1]+niz[i-2]))
      {
        temp+=1; // temp se inkrementira uvek kada je niz[i]=niz[i-1]+niz[i-2]
      }
      else
      {
        printf("Dati niz brojeva ne odgovara fibonacijevom nizu.
"); // poruka korisniku
        break; // izlaz iz programa
      }
    }

    if(temp==duzina)
      // poruka korisniku, koja se stampa ako je temp=duzina
      printf("Dati niz brojeva odgovara fibonacijevom nizu.
");
    break; // izlaz iz programa
  }
 
}