03/01/10 18:39
Astaroth
Ciao a tutti. Sono nuovo del forum.
Ho qualche difficoltà a creare un programma che legga da tastiera una sequenza di caratteri (al più di 50 elementi) terminata da un punto e li stampi a video nell’ordine inverso.
Questo è il codice che ho provato a scrivere (ma ci sono sicuramente degli errori, anche gravi forse). Mi potreste gentilmente dare una mano? (Senza usare funzioni di libreria).
Quello che ho pensato io è creare un vettore di caratteri di 50 elementi. Inizializzo un contatore a 0 e con un ciclo do-while leggo da tastiera la sequenza di caratteri e incremento il contatore. Se il contatore è 50 oppure se il carattere è un punto, il ciclo dovrebbe terminare. A questo punto salvo il valore del contatore in un'altra variabile e con un ciclo for stampo i caratteri contenuti nel vettore partendo dall'ultimo. Ma non funziona... Che cosa sbaglio? Grazie.
Ho qualche difficoltà a creare un programma che legga da tastiera una sequenza di caratteri (al più di 50 elementi) terminata da un punto e li stampi a video nell’ordine inverso.
Questo è il codice che ho provato a scrivere (ma ci sono sicuramente degli errori, anche gravi forse). Mi potreste gentilmente dare una mano? (Senza usare funzioni di libreria).
#include<stdio.h> #include<stdlib.h> main() { int i=0, j; char str[50]; do{ scanf("%c", str[i]); i++; }while(i!=50 || str[i]!='.'); j=i; for(i=0; i<j; i++) { printf("%c", str[j]); j--; } system("pause"); return 0; }
Quello che ho pensato io è creare un vettore di caratteri di 50 elementi. Inizializzo un contatore a 0 e con un ciclo do-while leggo da tastiera la sequenza di caratteri e incremento il contatore. Se il contatore è 50 oppure se il carattere è un punto, il ciclo dovrebbe terminare. A questo punto salvo il valore del contatore in un'altra variabile e con un ciclo for stampo i caratteri contenuti nel vettore partendo dall'ultimo. Ma non funziona... Che cosa sbaglio? Grazie.
Ultima modifica effettuata da Astaroth 03/01/10 19:02
aaa