Duda en resolver

sneider
08 de Agosto del 2004
Hola buenas tardes,tengo una duda de un algoritmo que no me sale, trata d lo siguiente:
tengo que realizar un algoritmo que al leer frases de izquierda a derecha o de derecha a izquierda suenen igual. Por ejemplo: daba le zorra ----la zorra el abad

He intentado muchas posibilidades pero no me sale ninguna.Me pongo en contacto con ustedes a ver si me pueden echar una mano.Muchas gracias y un saludo a todos.

chuidiang
08 de Agosto del 2004
¿Qué tiene que hacer el algoritmo?
¿Inventar frases de ese estilo?
¿Comprobar dada una frase si cumple esa condición?.
Lo primero sería demasiado complejo.
Lo segundo es más sencillo con algo como esto

for (i=0; i<longitudFrase/2; i++)
{
if (frase[i] != frase[longitudFrase-1-i])
fprintf ("No suena igual ...n");
}

Tendrás que ajustar los índices y tener en cuenta si el número de letras es par o impar para que el bucle quede bien ajustado, pero más o menos es eso.

Se bueno.

noel solw
08 de Agosto del 2004
Entiendo que lo que quieres es detectar frases capicuas.
La propuesta del correo anterior es perfecta. Yo te mando algo distinto, que utiliza funciones incluidas en el compilador de borland

// program capicua.cpp
// written in borland c++ - ver 4.5

#include <iomanip.h>
#include <string.h>
#include <stdio.h>

const int N = 81;

int main()
{
char a[N],b[N];
gets(a);
int k = 0;
for(int i =0;i <= strlen(a);i++) // compresion de la cadena
{ // eliminacion de espacios blancos
if(a[i] == ' ')
continue;
a[k++] = a[i];
}
strcpy(b,a); // copia b = a;
strrev(b); // invierte b
if(strcmp(a,b))
cout << "no ";
cout << "es capicua" << endl;
return 0;
} // MAIN