necesito ayuda para hacer este programa en c

roma.10
28 de Febrero del 2010
Soy un poco novato en esto de programar y tengo que realizar el siguiente ejercicio:

Ejercicio:

Escribid un programa que, después de pedir al usuario que introduzca una
cadena de 10 caracteres, busque si la cadena contiene algún palíndromo1 de
al menos 6 letras. Vuestro programa ha de decir cuál es el palíndromo más
largo que encuentra (siempre que sea de al menos 6 letras), así como su
longitud y en qué posición comienza y acaba (las posiciones comienzan por
0).

Ejemplo:

Con la cadena abcddcbaxy, el programa ha de decir que ha encontrado el
palíndromo abcddcba de longitud 8 que comienza en la posición 0 y acaba
en la 7. Más concretamente, la salida debe seguir este formato:

C:\...> practica3

Introduzca una cadena de 10 caracteres: abcddcbaxy
Palíndromo: abcddcba
Longitud: 8
Posición inicial: 0
Posición final: 7

Por lo que he entendio tengo q hacer lo siguient:

Pida al usuario la cadena string cadena[9];
luego tome la posición cadena[0] con la posición cadena[5] porque debe ser al menos de 6 caracteres
si son iguales compare cadena[1] con cadena [4] y cadena[2] con cadena[3] si todas son verdaderas el palíndromo esta entre cadena[0] a cadena[6] si alguna comparación es falsa se debe comparar igual de nuevo cadena[0] con cadena[7] (se repite el proceso), luego con cadena[9] (se repite el proceso) y se continua despues de comparar el primer valor de la cadena, comparando el segundo así: cadena[1] con cadena[6] (se repite el proceso)... hasta comparar por ultimo a cadena[3] con cadena[9] (se repite el proceso) ya que después de la posición 4 solo quedan 6 caracteres para la 10

Entonces he escrito el siguiente codigo, pero parce ser q no es el correcto...
Ademas lo tendria q realizar en c y aun lo pillo menos...

Codigo q he escrito:

Librerias....
Void main().....

int valida=0,cont1,cont2=0;
do
{
for (cont1=9,cont1>5,cont1--);
{
if(cadena[cont2] == cadena[cont1])
{
valida++;
if (cont2==cont1-valida)
{
cout>>"Palíndromo: ";
for(cont=cont2;cont<=valida;cont++;
{cout>>cadena[cont];}
cout>>"Longitud: ",valida;
cout>>"Posición inicial: ",cont2;
cout>>"Posición final: ",cont2+valida
}
else
{
valida=0;
cont1=9-cont2;
cont2=cont2+1;
}
}
while (cont2<5);

Si alguien me puede hechar una mano..lo agradeceria muchisimo! GRACIAS