/* Logicki i relacijski operatori - 
      manje(<), vece(>), jednako(==), razlicito(!=), manje jednako(<=), vece jednako(>=), i(&&), ili(||), ne(!)
*/
#include <stdio.h>

main() {
  /* Rezultat primene relacijskih operatora su logicke vrednosti koje
     se predstavljaju vrednoscu nula i nekom vrednoscu razlicitom od
     nule (najcesce je to 1) */
  printf("5<3 - %d\n5>3 - %d\n3==5 - %d\n3!=5 - %d\n", 5<3, 5>3, 3==5, 3!=5);

  /* Konjunkcija, disjunkcija i negacija su definisane nad logickim
     vrednostima */
  printf("Konjunkcija : 3>5 && 5>3 - %d\n", 3>5 && 5>3);
  printf("Disjunkcija : 3>5 || 5>3 - %d\n", 3>5 || 5>3);
  printf("Negacija : !(3>5) - %d\n", !(3>5));

  /* Aritmeticki operatori imaju veci prioritet u odnosu na
     relacijske, a ovi u odnosu na logicke pa zagrade u prethodnim
     izrazima kao ni u narednom izrazu nisu neophodne */
  printf("2+3 <= 4+5 && 1+2 >= 3+5 = %d\n", 2+3 <= 4+5 && 1+2 >= 3+5); 

  /* Ipak, negacija (kao unarni operator) ima prioritet u odnosu na
     sve binarne operatore pa je zagrada u izrazu !(3>5) neophodna */
}