// Este programa nos dice si la cadena introducida es palíndromo (devuelve 1) o no lo es (devuelve 0).
#include <stdio.h>
#include <stdlib.h>
#define DIM 20
int main()
{
char string [DIM], *p, *q;
int i=0, j=0, resultado;
printf("Introduzca el posible palindromon");
gets(string);
if(*string==») return 1; // cadena vacía consideramos palíndromo
p=string;
q=string;
while ( q[i]!=») i++; // recorremos cadena hasta el final
i–;
while ((j<=i)&&(p[j]==q[i])) // comparamos de los dos bordes hasta el centro
{
j++;
i–;
}
if (j>i) resultado=1; // devolvemos resultado
else resultado=0;
printf("El resultado es %dn", resultado);
system("PAUSE");
return 0;
}
he introducido el control de la cadena vacía al principioporque si no podía dar el resultado contrario…he cambiado el orden de los operandos en el && por el caso de las cadenas de 1 carácterque podría hacer q[-1]… prúebalo a ver de las 2 formas…he puesto comentarios.bien,ric.