Cmq a parte gli scherzi ..

1) Intanto vedo che il procedimento e` molto "rustico", perche` prende solo numeri di una cifra.

2) i non e` inizializzato a 0, quindi vai a leggere indici astronomici..

3) presi cosi` come sono, i numeri da 0 a 9 non avranno questo valore, ma saranno da '0' a '9', per il fatto che tu con getchar() prendi in input dei caratteri, non dei numeri. Quindi avrai '0' -> 48, '1' -> 49, '2' -> 50 etc. Percio` prima di fare la somma devi sottrarre 48 dagli addendi (o 0x30 che e` piu` esplicativo).

Ciao.