C/Visual C - Error al decirme si es Palindromo

 
Vista:

Error al decirme si es Palindromo

Publicado por kojak19 (2 intervenciones) el 12/01/2008 17:22:46
#include <stdio.h>
#include <conio.h>
#include <string.h>

int palindromo;
int longitud;
int i;
char palabra[50];

int main()
{
printf("PROGRAMA DE PALINDROMOS: ");
printf("------------------------ ");

printf("Introduce una palabra: ");
scanf("%s", &palabra);

printf(" Has introducido: %s", palabra);

longitud = strlen(palabra);

printf(" La palabra contiene: %d letras", longitud);

i = 1;
palindromo = 1;

while (i < longitud && longitud > i)
{
if (palabra[i] != palabra[longitud])
{
palindromo = 0;
}

i++;
longitud--;
}

if (palindromo >= 1)
{
printf(" Si ");
}
else
{
printf(" NO ");
}

getch();
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error al decirme si es Palindromo

Publicado por Ayuda (2 intervenciones) el 12/01/2008 19:55:52
Alguien me ayuda??? El programilla siempre me da el resultado negativo y me dice k "NO ES PALINDROME" como puedo solucionarlo??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error al decirme si es Palindromo

Publicado por nayumiorama (53 intervenciones) el 14/01/2008 16:02:28
En C el 0 vale. Tienes que inicialiar i a 0 en vez de a 1.

Tambien puedes optimizar un poco el proceso. La primera vez que veas que no es palindromo, cuando pones palindromo=0, no hace falta que sigas con el bucle while.

La condición del while tampoco es muy coherente, ya que si i < longitud, tambien se cumple que longuitud > i. Yo lo haría por la mitad de la longitud de la cadena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar