Salve a tutti.
Ho fatto questo semplice programma con una funzione che mi dice se la parola immessa dall'utente è palindroma o meno.
C'è un problema: se immetto la parola "Anna" mi dice che è palindroma (e fin qui, tutto nella norma); ma se immetto una qualsiasi parola NON palindroma, mi dice comunque che lo è.
Allego qui il codice e spero voi possiate aiutarmi a notare e correggere il mio errore.
Ho fatto questo semplice programma con una funzione che mi dice se la parola immessa dall'utente è palindroma o meno.
C'è un problema: se immetto la parola "Anna" mi dice che è palindroma (e fin qui, tutto nella norma); ma se immetto una qualsiasi parola NON palindroma, mi dice comunque che lo è.
Allego qui il codice e spero voi possiate aiutarmi a notare e correggere il mio errore.
C:
#include <stdio.h>
#include <stdlib.h>
#define DIM 100
void palindroma(char str[]){
int i, j, count;
// calcolo la lunghezza della stringa
for(i=0; str[i] != NULL; i++){
count++;
}
printf("La parola contiene %d caratteri.\n", count);
// fare funzione controllo palindroma
// divido a metà la stringa, inizializzo i=0 così parte da sx verso dx
// e inizializzo j=count-1 così parte da dx verso sx
// infine controllo se le due mini-stringhe sono uguali o meno
for(i=0, j=count-1; i<count/2; i++, j--){
if(str[i]==str[j]){
printf("La stringa è palindroma.\n");
} else {
printf("La stringa NON è palindroma.\n");
}
}
}
int main(){
char s[DIM];
printf("Inserisci una parola: ");
scanf("%s", &s[DIM]);
palindroma(s);
return 0;
}