Ho provato a correggere sintatticamente il codice sorgente come segue:
#include <stdio.h>
int main( void )
{
int NUM1 = -2;
int NUM2 = -3;
int NUM3 = -5;
int NEGATIVI = 0;
if ( NUM1 < 0 ) {
NEGATIVI = NEGATIVI + 1;
}
if ( NUM2 < 0 ) {
NEGATIVI = NEGATIVI + 1;
}
if ( NUM3 < 0 ) {
NEGATIVI = NEGATIVI + 1;
}
printf( "%d\n", NEGATIVI );
puts( "pause" );
}
L'OUTPUT è nel link di printscreen sotto:
http://prntscr.com/fb674
Ovviamente stampa il numero 3 e la stringa di testo "pause". Questo perchè se NUM1 < 0 incrementa NEGATIVI di 1 e così NEGATIVI nella seconda selezione di if diventa 0 + 1 = 1. Dunque se il NUM2 < 0 la variabile NEGATIVI diventerà 1 + 1 = 2 il quale valore sarà utilizzato nella terza selezione if dove se NUM3 <0 la variabile NEGATIVI diventerà 2 + 1 = 3 e verrà stampato il 3 e l stringa pause perchè sono finite le istruzioni. Questo avviene perchè la variabile NEGATIVI è distruttiva cioè viene sostituito il suo valore ogni volta che ne viene posto uno nuovo nello spazio di memoria dedicato alla variabile NEGATIVI.
Spero di essere stato corretto. Ciao.