PDA

Visualizza la versione completa : [C++] Significato dell'operatore "%"


Manuelandro
16-01-2006, 15:07
quel simbolo percentuale per cosa sta?

es.

if( V[i]%2) {



??

Manuelandro
16-01-2006, 15:14
scritto così


if(V[i]%2==0) {


dovrebbe essere se il resto di V[i] fratto 2 è 0..o no?

ma se nn c'è ==0 come ho postato?

Shagrat
16-01-2006, 15:14
è l'operatore "modulo", in quel caso ti dà il resto della divisione di V[i] per 2
:ciauz:

Shagrat
16-01-2006, 15:15
Originariamente inviato da Manuelandro
scritto così


if(V[i]%2==0) {


dovrebbe essere se il resto di V[i] fratto 2 è 0..o no?

ma se nn c'è ==0 come ho postato?

se non c'è ==0 entra nell'if solo se il resto è diverso da 0

unomichisiada
16-01-2006, 16:12
in C/c++ se la valutazione di un'espressione porta ad un valore diverso da zero viene interpretata come true dalle istruzioni che si aspettano booleani (coem l'if) e coem false in caso contrario (cioè se la valutazione produce 0). Infatti occorre stare attenti quando si usa questa proprietà su esperssioni in virgola mobile perchè secondo l'espressione la valutazione potrebbe portare ad un numero molto prossimo allo zero (molto molto piccolo tipo 0,000000qualcosa) e ed essere comunque considerata un valore true perchè non è zero esatto.

oregon
16-01-2006, 16:24
Originariamente inviato da unomichisiada
in C/c++ se la valutazione di un'espressione porta ad un valore diverso da zero viene interpretata come true ...

Non solo in C/C++ ...

Manuelandro
16-01-2006, 16:28
thanks :D

unomichisiada
16-01-2006, 19:12
Originariamente inviato da oregon
Non solo in C/C++ ...
Lo so.Ho citato quelli perchè il C++ è il linguaggio del 3d e il C è "suo padre".
In ogni caso non è neanche vera per tutti i linguaggi la cosa, in tutti i linguaggi con tipizzazione forte (java ad esempio) non è nemmeno possibile "confondere" un valore non nullo di qualsiasi tipo con un booleano

oregon
16-01-2006, 19:58
Certo ... non ho detto "di tutti i linguaggi" ma "non solo in C/C++" ...

Loading