Non mi funzica :master:Originariamente inviato da andrea_NET-_DSL
sisi eccerto...che domande faccio...un momento di confuzione
tornando alla mia prima versione con il fix del confronto...ok?codice:int palindroma(char *parola){ static int i=1; static int j;//le static vengono auto inizializzate,in questo caso a 0 essendo un intero //controllo che la stringa passata non sia nulla if(parola == NULL) return 0; //condizione di uscita della ricorsione if(i == strlen(parola)) return 1; if(parola[j++] == parola[strlen(parola)-i] ){ i++; return palindroma(++parola); } }
sia che gli passi "anna", sia che gli passi "ciao" mi restituisce 0...
In C si puo' fare tuttoecceto il fatto che se la richiami +volte nel programma(cioè se vuoi controllare ad es due parole se sono palindrome,senza chiudere e riaprire il programma)casha, perchè c'è la var static che nn si resetta.
![]()
![]()
Basta che prima di tutti i return di quella funzione ci si mette un belcodice:i = j = 0;![]()