Errori Tipici
Campionando alcuni compiti, ho notato che l'errore pių ricorrente č stato quello di
stampare scritte non richieste. Era stato scritto (e detto) di toglierle prima di consegnare il programma.
Leggette con accuratezza le tracce: non posso guardare i vostri programmi uno ad uno!
Qualcuno ha semplicemente introdotto spazi in pių nella stampa.
Alcuni hanno trattato in modo particolare (e tipicamente errato) il caso n=1.
Alcuni hanno lasciato istruzioni come il pause o il getch, necessarie per evitare che in alcuni sistemi si chiuda la finestra di output (tipicamente usando un IDE): ricordatevi la prossima volta di togliere queste istruzioni!
Se dovete scrivere qualcosa, ricordate di metterlo come commento.
Alcuni hanno fatto errori pių seri, tipo: mettere il ";" dopo la condizione del while, oppure confondere "=" e "==".
E ricordatevi che le variabili VANNO INIZIALIZZATE correttamente prima di essere utilizzate, specie se a destra di un assegnamento (ricordatevi che i---++ significa i=i+1).
Comunque ecco una soluzione possibile: (ho tolto l'include si stdio.h, perchč Twiki interpreta le parentesi angolate come un tag html!!!)
void main()
{ int step=0;
int n;
scanf("%d",&n);
while (n!=1)
{ if (n % 2 == 0) n = n/2;
else n = 3 * n---+ 1;
step---++;
}
printf("%d\n",step);
}
--
IvanoSalvo - 05 Nov 2004