salve ho questo programma....

voglio precisare per chi non lo sapesse che palindromo vuol dire una parola che si legge sia in un verso che nell'altro...(esempio. anna, madam, anilina... )
ho trovato un bug... se inserisco una parola che inizia e finisce con la stessa lettera, mi dice che è un palindromo....
se qualcuno mi potesse aiutare a trovare l'errore gliene sarei grato...


codice:
#include <stdlib.h>   /* librerie standard */
#include <stdio.h>    /* funzioni printf, scanf */
#include <string.h>   /* librerie delle string */

#define lunghezza 20  /* lunghezza massima vettore */ 

/* Dichiarazioni Funzioni */
void inseriscistringa(int i, int n, char *vettore);            /*legge in input una stringa*/ 
void toglispazi(int i, int n, char *nuovo, char vecchio[]);    /*toglie spazi in una stringa*/ 
int palindromapari(int i, int n, char parola[]);               /*verifica se la stringa è palindroma se la lunghezza della stringa è pari*/ 
int palindromadispari(int i, int n, char parola[]);            /*verifica se la stringa è palindroma se la lunghezza della stringa è dispari*/ 
void mostrainformazioni( int dimensione, char vettore[]);      /*stampa a video i risultati*/ 

/* Inizio del Main */
int 
main (void) 
{ 
char vettore_input[lunghezza];/*input, vettore inserito dall utente che può comprendere spazi*/ 
char parola[lunghezza];       /*variabile di programma, il contenuto è copiato da vettore_input senza gli spazi*/ 
int i=0;                      /*programma, indice della posizione del vettore*/ 
int dim;                      /*programma, dimensione effettiva del vettore*/ 
char k;                       /*programma, viene usato in vari modi, per leggere un carattere alla volta*/ 
int soluzione;                /*se vera la parola o frase è palindroma, altrimenti non lo è*/ 
char risposta; 

printf("<***********************************************>\n");
printf("<*                                             *>\n");
printf("<*----------------  PALINDROMO  ---------------*>\n");
printf("<*                                             *>\n");
printf("<***********************************************>\n\n");

inseriscistringa(i=0, lunghezza, vettore_input); /*chiamata funzione - inserisci una frase o parola nel vettore*/ 
i=0;                                             /*azzera contatore*/ 
dim= strlen(vettore_input); 
printf("\nLa stringa inserita e'->\n"); 
mostrainformazioni(dim, vettore_input);          /* chiamata funzione - mostra i dettagli su dimensione e contenuto della stringa, per verificare se è corretto*/ 


toglispazi(i, dim, parola, vettore_input);       /* chiamata funzione - toglie eventuali spazi nella stringa*/ 
dim=strlen(parola);                              /*calcola lunghezza della parola digitata senza spazi*/ 
printf("\nLa stringa senza spazi e'->\n"); 
mostrainformazioni(dim, parola);                 /* chiamata funzione - mostra contenuto e dimensione del nuovo vettore, verifica che tutto sia andato come previsto*/ 


i=0;                            /*azzeriamo contatore*/ 

if ((dim%2)==0)                 /*se la dimensione della stringa è pari allora...*/ 
{dim=dim-1;                     /*perché gli indici del vettore vanno da 0 a dim-1*/ 
soluzione=palindromapari(i, dim, parola);} 
else 
{dim=dim-1; 
soluzione=palindromadispari(i, dim, parola);} 

if (soluzione) /* istruzione if per il confronto delle funzioni */

printf("\nLa parola digitata e' palindroma\n"); /* stampa a video risultato */
else 
printf("\nLa parola digitata non e' palindroma\n"); /* stampa a video risultato */
system("pause"); 
return(0); /* fine del main */
} 
/* funzione input - leggi stringa */ 
void inseriscistringa(int i, int n, char *vettore) 
{ 
int k; /* varibile di confronto nel ciclo for */
printf("Inserisci una parola o una frase senza usare segni di punteggiatura:\n\n---> "); /* inserimento */
k=getchar(); /* confronto stringa-varibile */
for(i=0; (i<n)&&(k!='\n')&&(k!=EOF);i++) /* ciclo for per la memorizzazione dei caratteri in vettore */
{vettore[i] = k; 
k=getchar(); 
} 
vettore[i]='\0'; 
} 
/* funzione calcola - togli spazi */ 
void toglispazi(int i, int n, char *nuovo, char vecchio[]) 
{ 
int j=0; /* ciclo di conteggio */
for (i=0; i<n; ++i) 
{ 
if (vecchio[i]!=' ') /* confronto con l'inserimento - blank */
{nuovo[j]=vecchio[i]; 
j=j+1;} /* incremento */
} 
nuovo[j]='\0'; 
} 
/* funzione confronto - verifica dispari */ 
int palindromadispari(int i, int n, char parola[]) 
{ 

int risultato; /* variabile risultato */
if(i==n) /* confronto */
{/*carattere sicuramente uguale, risultato vero*/ 
risultato=1; 
return(risultato); /* restituisce il valore 1 */
} 
else 
{ 
if(parola[i]==parola[n]) 
risultato=palindromadispari(i+1, n-1, parola); 
else /*lettere non uguali, risultato falso*/
{ risultato=0; 
return(risultato); /* restituisce il valore 0 */
  } 
 } 
} 
/* funzione confronto - verifica pari */ 
int palindromapari(int i, int n, char parola[]) 
{ 
int risultato; /* variabile risultato */
if(i>n) /* confronto */
{ 
if (parola[i]==parola[n]) /* confronto */
{risultato=1; 
return(risultato); /* restituisce il valore 1 */
} 
else 
{risultato=0; 
return(risultato); /* restituisce il valore 0 */
 } 
} 
else /* condizione risultante */
{ 
if (parola[i]==parola[n]) 
risultato=palindromapari(i+1, n-1, parola); /* richiamo alla funzione */
else 
{risultato=0; 
return (risultato); /* restituisce il valore 0 */
  } 
 } 
} 
/* funzione output - stampa a video */ 
void mostrainformazioni(int dimensione, char vettore[]) 
{ 
printf("%s\n", vettore); /* stampa a video */ 
}