Salve,
ieri all'Università il Prof ci ha fatto fare un esercizio dove dovevamo verificare se una parola inserita dall'utente era palindroma. L'esercizio andava svolto con i puntatori. Nel provarlo a casa però non funziona. Non riesco a capire quale errore ho fatto. L'ho ricontrollato varie volte, riga per riga, e tra l'altro non mi vengono dati errori o warnings, quindi non ho indizi![]()
Il programma mi chiede di digitare la parola, io la scrivo e premo invio. Il programma mi dice la lunghezza della parola, ma poi mi richiede di digitare una parola, quindi mi salta tutto il controllo if-else, e non capisco perchè. Qualcuno sa aiutarmi?
EDIT: ho modificato "if(*(punt_char+i)==*(punt_char+j))" in "if(*punt_char+i==*punt_char+j)" e ora mi fa il controllo, soltanto che dice sempre "La parola non è palindroma" anche se inserisco "anna" o altre parole palindrome.![]()
Il codice è questo:
codice:#include <stdio.h> #define DIM 100 int main(){ char *punt_char; char parola[DIM]; char c; int lung, flag=0, i, j; while(!flag){ punt_char=parola; lung=0; printf("Digita la parola: "); while(((c=getchar())!=' ' && c!='\n')){ *(punt_char+lung)=c; lung++; } *(punt_char+lung)='\0'; printf("La parola ha lunghezza %d caratteri\n", lung); if(lung==0){ flag=1; printf("Fine Programma\n"); }else{ if(lung==1){ printf("Carattere Isolato\n"); }else{ i=0; j=lung-1; while(i<j){ if(*punt_char+i==*punt_char+j){ i++; j--; }else{ printf("La parola non e' palindroma\n"); break; } } } } } }


Rispondi quotando