Vedi anche:
HomeWork1aa0203,
DomandeHomework1aa0203,
RisultatiHomework1aa0203.
Ecco una possibile implementazione dell'HomeWork1aa0203:
#include <stdio.h>
int main() {
/* dichiarazioni */
int ultimo,penultimo,terzultimo,conta=0;
/* dati personali */
printf("Andrea\nSterbini\n02\n02\n1961\nsterbini@dsi.uniroma1NOSPAM.it\n");
/* lettura del primo input */
scanf("%d",&ultimo);
/* ciclo per gli altri valori */
while (ultimo != -1) {
/* conto i valori letti */
conta---++;
/* se ho letto almeno 3 valori */
if (conta > 2)
printf("%.2f\n",((double)ultimo---+penultimo+terzultimo)/3);
/* scorrimento dei 2 ultimi valori */
terzultimo=penultimo;
penultimo=ultimo;
/* lettura del prossimo input */
scanf("%d",&ultimo);
}
return 0;
}
Errori più comuni
Ho notato i seguenti errori comuni:
- Presenza di istruzioni prima delle dichiarazioni
- Uso di prompt o messaggi non richiesti
- Errori di battitura:
- uso dei doppi apici di Word invece che del carattere "
- Doppi apici non chiusi
- virgole dimenticate
- inclusione di file .h sbagliati
- Errori logici
- Alcuni programmi non terminavano e li ho dovuti bloccare con un timeout
- Errori di arrotondamento
- una numero intero diviso 3, quando viene stampato con 2 cifre decimali può dare solo le seguenti possibili cifre decimali: .00 .33 .67
- usando il tipo do dato float si ha una precisione limitata, conviene usare double
La presenza di questi errori tipici ripetuti mi fa pensare che una parte di voi non abbia scritto il proprio programma.
Chi copia frega se' stesso ... digli di smettere
--
AndreaSterbini - 28 Oct 2002