Piuttosto che usare la scanf darebbe molto più auspicabile la getch.. Comunque direi che il resto del programma è scritto benino. Da quanto capisco devi inserire un carattere e poi battere invio. La scanf a volte prende il caratere inserito + i 2 caratteri \13 \10 e passa quello sbagliato.. Ritenta, sarai più fortunato! SALUUUUUTOOOO 3br.Fir3<l@ws (nick completo per la mia controparte compilativa... ;-) ) ----- Original Message ----- From: Emanuele Bardelli To: scienze.unimo@xxxxxxxxxxxxx Sent: Saturday, December 23, 2006 7:07 PM Subject: [scienze.unimo] Problema C Ciao a tutti, prima di tutto, Buone Feste a tutti. Detto questo, avrei un piccolo problema con un programmino in C. Non mi ricordo molto bene come funziona l'input, e il programma sotto non legge bene i caratteri. In poche parole, salta dei caratteri mentre li inserisco. Il programma è per un mio amico, e possiamo usare solo le istruzioni sotto (niente puntatori, liste, stringhe, ecc). La funzione del programma è mettere in maiuscolo le lettere inserite. Grazie a tutti per l'interessamento, Buone Feste, Emanuele #include <stdio.h> #include <conio.h> int main() { int N,i; int V[200]; printf ("quanti caratteri vuoi inserire?\t"); scanf ("%d",&N); for (i=0;i<N;i++) { printf("inserisci un carattere\t"); scanf ("%c",&V[i]); } i=0; while (i<N) { if (V[i]<='z' && V[i]>='a') V[i]=V[i]-('a'-'A'); i++; } i=0; do { printf ("%c\t",V[i]); i++; } while (i<N); getch (); } -- "Non hai veramente capito qualcosa finché non sei in grado di spiegarlo a tua nonna." Albert Einstein