El enunciado del problema es introducir una palabra y chequear si la palabra es Palindrome (como por ejemplo la palabra inglesa "level", o sea que se lea igual para adelante y para atras).
Ahora, tenemos un programa casi listo pero al parecer el ciclo no se termina y el programa se queda pegado :S... Asi que les adjunto el programa como lo tenemos hasta el momento.
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main () {
clrscr ();
char frase[50];
int i=0,j,l;
char algo;
printf("Escriba una frase: ");
scanf ("%s",frase);
while(frase!='\0')
i++;
l=i;
do
for (i=0;i<(l/2);i++) {
for (j=l;j>(l/2);j--) {
if (frase==frase[j])
algo='s';
else algo='n';
}
}while (algo=='s');
if (algo=='s')
printf ("La palabra es palindroma");
else printf ("La palabra no es palindroma");
getch ();
}
Dos notas: a) el programa es de urgencia!!! Si no lo hacemos nos quiebran en informatica b) Estoy seguro que es "palindrome" pero soy el unico que piensa así.
Gracias desde ya.
Ayuda urgente con Borland C++
Moderador: Moderadores
-
- Novat@
- Mensajes: 1
- Registrado: Sab Feb 22, 2003 11:49 pm
Está mal ideado el algoritmo, no tienes que anidar dos blucles for. Se trata de recorrer la palabra hasta la mitad y con el mismo puntero que se sigue la primera mitad y una operación sencilla (longitud de la palabra -puntero), se obtiene la letra del otro extremo que se quiere comparar.
Para hacerlo fácil, la condición inicial sería que es un palíndrome, y si en el bucle no hay una condición de diferencia que demuestre lo contrario, quedaría la condición inicial de que sí lo es.
Saludos.
Para hacerlo fácil, la condición inicial sería que es un palíndrome, y si en el bucle no hay una condición de diferencia que demuestre lo contrario, quedaría la condición inicial de que sí lo es.
Saludos.
Equipo ABCdatos.
http://www.abcdatos.com/
http://www.abcdatos.com/