[ HeplF2 @ 10.02.2016. 12:01 ] @
Problem je sto nisam siguran KOJA JE VREDNOST brojaca (counter) kada se ispuni uslov za a=1

Code:


if (!((--counter )+=2)) 

{ a=1}

[ WintersWolf @ 10.02.2016. 19:32 ] @
daj ostatak koda ako mislis da ti neko pomogne jer se iz ovog ne moze nista zakljuciti
[ HeplF2 @ 10.02.2016. 21:17 ] @
Problem je sto nema. Nego samo da se napise koji je sadrzaj brojaca za a=1
[ plague @ 10.02.2016. 21:24 ] @
Vrednost counter-a je 0 kada dodje do izvrsavanja if bloka.

U C++ sve vrednosti koje nisu 0 se smatraju true dok je 0 = false.

Ako se izvrsi uslov i dodje do dodele a=1, znaci da je izraz !((--counter )+=2) == true
Posto imas negaciju, izraz (--counter )+=2 mora biti false iliti 0.
itd...

Samo ogoli sloj po sloj i doci ces do zakljucka.
[ peromalosutra @ 11.02.2016. 06:40 ] @
Prvo, koji je ovo jezik, C ili C++? U C-u se ovakav izraz ne kompajlira jer --counter vraca rvalue. U C++ ovo prolazi, tako da pretpostavljam da se mislilo na njega.

Vrijednost brojaca za ispis je -1. Imas uslov
Code:
(!((--counter )+=2)) 


Sto znaci da ovo mora biti false, tj. nula:
Code:
((--counter )+=2)


Sto znaci da --counter mora biti -2, tj. counter je prije toga morao biti -1.

Ovo mozes provjeriti tako sto dopunis ono sto ti fali u kodu:
Code:

#include <iostream>

int main()
{
        int counter = -1;
        if (!((--counter )+=2)) 
        {
                int a=1;
                std::cout << "Entered!" << std::endl;
        }
        return 0;
}


Probaj da counter inicijalizujes na neku drugu vrijednost osim -1 i vidjeces da se ne ulazi u if.
[ HeplF2 @ 11.02.2016. 07:33 ] @
I ja sam mislio da to ne prolazi u C, ali se u teoriji trazi da se napise koja je vrednost iako se odnosi na C :D
Hvala na odgovoru. Jeste -1 resenje ali nije mi jasno bilo.
[ HeplF2 @ 11.02.2016. 07:34 ] @
Da li je u ovo izrazu brojac=0 ?

if(!(--brojac)--) { a=1;}
[ jablan @ 11.02.2016. 08:20 ] @
http://www.cplusplus.com/reference/cassert/assert/

http://ideone.com/
[ negyxo @ 11.02.2016. 08:31 ] @
@HeplF2
Ne bi da gadim temu, ali ko normalan pise takav if? Iz tvog pisanja reklo bi se da je neko pitanje iz nekog testa. Koji god da je test ja bi rekao da te vec u startu uci pogresno ;)
[ HeplF2 @ 11.02.2016. 09:02 ] @
A sta da radim ,moram to da polozim.. :D
[ jablan @ 11.02.2016. 09:09 ] @
Koja je to škola (da znam da ne šaljem decu)? :)
[ HeplF2 @ 11.02.2016. 09:26 ] @
Pcelica :))))))))))))))))))))))))))))))))))
[ HeplF2 @ 11.02.2016. 09:35 ] @
Imam jos jedno pitanje. Ako imate volje da odgovorite..

Imam cetiri niz i teba da mi na displej izbaci koliko ima brojeva, u svakom nizu po na osob, manje od sest. E sada ne znam da li da upotrebim cetiri FOR petlj, za svaki if uslov jedan for, ili da jedan for ya sve if ali ne znam kako da to lepo upakujem da proverava svaki niz a ne samo jedan.

NAGLASAVM, program nije ceo posto mi treba samo taj deo provere.

Code:

byte niz1[16]={3,22,31,9,11,6,7,8,23,17,10,30,73,40,55,93};
 byte niz2[16]={11,14,7,13,17,19,97,2,12,128,1,124,123,122,33,21};
  byte niz3[16]={9,15,4,13,2,49,57,3,74,47,39,59,112,100,91,6};
   byte niz4[16]={33,58,68,66,21,19,97,3,1,2,5,12,27,9,15,11};
byte count1=0,count2=0,count3=0,count4=0;
a= niz1[i];
b= niz2[i];
c= niz3[i];
 d= niz4[i];

for (i=0;i<16;i++){
                           if(a<6) count1++;
                                displej=count1 ;

                           if(b<6) count2++;
                            displej=count2;
                           if(c<6) count3++;
                          displej=count3;
                           if(d<6) count4++;
                           displej=count4;  }







[ plague @ 11.02.2016. 09:38 ] @
-1 je bila vrednost brojaca pre izvrsavanja if.
Nakon izvrsavanja, ako je usao u if, brojac je postao 0 jer je doslo do dodeljivanja vrednosti: example