/* Logicki operatori - lenjo izracunavanje */

/* Prilikom izracunavanja izraza - A && B, ukoliko je A netacno, izraz B se ne izracunava.
   Prilikom izracunavanja izraza - A || B, ukoliko je A tacno, izraz B se ne izracunava.
*/

#include <stdio.h>

int b;

/* Funkcija ispisuje da je pozvana i uvecava promenjivu b.
   Funkcija uvek vraca vrednost 1 (tacno)
*/
int izracunaj() {
  printf("Pozvano izracunaj()\n");
  b++;
  return 1;
}

main() {
  int a;
  
  /* Funkcija izracunaj() ce se pozivati samo za parne vrednosti a */
  b = 0;
  for (a = 0; a < 10; a++)
	if (a%2 == 0 && izracunaj())
	  printf("Uslov ispunjen : a = %d, b = %d\n", a, b);
	else 
	  printf("Uslov nije ispunjen : a = %d, b = %d\n", a, b);

  printf("----------------------------\n");
  
  /* Funkcija izracunaj() ce se pozivati samo za neparne vrednosti a */
  b = 0;
  for (a = 0; a < 10; a++)
	if (a%2 == 0 || izracunaj())
	  printf("Uslov ispunjen : a = %d, b = %d\n", a, b);
	else 
	  printf("Uslov nije ispunjen : a = %d, b = %d\n", a, b);

}