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

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r3 - 2004-11-23 - IvanoSalvo






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback