Considerate il seguente frammento di codice:
float i, f; ... f=1/50.0; for(i=0.0; i != 1.0; i+=f) printf("A");Quale dei seguenti effetti ha il ciclo for indicato?
- Stampa 50 volte il carattere A.
- Stampa 51 volte il carattere A.
- Stampa 49 volte il carattere A.
- Il ciclo potrebbe non terminare, stampando infinite volte il carattere A.
- Il compilatore segnala un errore.
- Il ciclo non viene mai eseguito.
Soluzione: 4 (Il ciclo potrebbe non terminare, stampando infinite volte il carattere A)
Il ciclo termina nel caso in cui il valore di i diventi esattamente 1.0 ma non è garantito che succeda con la rappresentazione in virgola mobile dei float.