Considerate il seguente frammento di programma:
t=-1; for(i=1; i <= n; i++) if(f(i)) t=i; if(t >= 0) printf("%d\n", t);
Quale delle seguenti affermazioni è corretta?
- Il programma cerca e stampa il più piccolo intero x fra 1 e n tale che f(x)!=0;
se tale intero non esiste, il programma entra in un ciclo infinito. - Il programma cerca e stampa il più grande intero x fra 1 e n tale che f(x)!=0;
se tale intero non esiste, il programma entra in un ciclo infinito. - Il programma cerca e stampa il più piccolo intero x fra 1 e n tale che f(x)!=0;
se tale intero non esiste, il programma non stampa nulla. - Il programma cerca e stampa il più grande x fra 1 e n tale che f(x)!=0;
se tale intero non esiste, il programma non stampa nulla.
Soluzione: d (Il programma cerca e stampa il più grande x fra 1 e n tale che f(x)!=0; se tale intero non esiste, il programma non stampa nulla.)
Il ciclo for() scorre gli interi da 1 a n e se f(i)<>0 allora t=i.
Alla fine del ciclo la variabile t contiene l’indice più grande tale che…
Se la variabile t alla fine del ciclo è ancora -1 allora non esiste i tale che… e non la stampa.