necesito ayuda para hacer este programa en c
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
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
