Hai ragione per quanto riguarda le parentesi, avevo come sempre letto troppo di fretta e con troppa stanchezza addosso! Chiedo scusa per l'imprecisione!Originariamente inviato da Alex'87
???
Le parentesi grafe non sono obbligatore: se non vengono messe le parentesi grafe verrà presa solo la successiva linea di codice.
Questo for è senza parentesi pertanto solo l'if farà parte del suo corpo. L'if è anch'esso senza parentesi e solo il primo assegnamento farà parte del suo corpo. La chiamata a printf invece è fuori sia dall'if che dal ciclo. In pratica è come se avesse scrittocodice:for(i = 0; i < n; i++) if(a[i - 1] == a[i]) frequenza = frequenza + 1; printf("frequenza: %d\t", frequenza);
che è chiaramente errato. Più probabilmente intendeva fare una cosa del generecodice:for(i = 0; i < n; i++) { if(a[i - 1] == a[i]) { frequenza = frequenza + 1; } } printf("frequenza: %d\t", frequenza);
Il codice è comunque sbagliato (a partire da i - 1 per arrivare al calcolo della frequenza).codice:for(i = 0; i < n; i++) { if(a[i - 1] == a[i]) { frequenza = frequenza + 1; printf("frequenza: %d\t", frequenza); } }