Autor
|
Tema: Funcion palíndromo. (Leído 22,453 veces)
|
ollessor
Desconectado
Mensajes: 2
|
No se como implementar una función que que me detecte si un array de caracteres es palindromo. ¿Sabe alguien como puedo hacerlo? Gracias.
|
|
|
En línea
|
|
|
|
byebye
Desconectado
Mensajes: 5.093
|
busca que ya se hablo justo de esto.
|
|
|
En línea
|
|
|
|
TheMaker
Desconectado
Mensajes: 514
|
Crea un array auxiliar, inserta el original en el auxiliar empezando por el final, con esto el auxiliar tendra el original pero "dado la vuelta", comprueba si original y auxiliar son iguales, si lo son, entonces es palindromo.
Tmb puedes pasar de crear un nuevo array, compara posicion 0 con posicion n-1, 1 con n-2, 2 con n-3 .... siendo n el numero total de caracteres, si todos son iguales entonces palindromo
|
|
« Última modificación: 16 Septiembre 2008, 20:31 pm por TheMaker »
|
En línea
|
Gibe money please or I report you
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
Esto es una tontería pero bueno... #include <stdio.h> #include <string.h> #define TAMANIO 81 //Declaracion de Funciones*************************************************** void Introducir_frase (char frase[]) { printf ("introducir una frase: "); } int Comprobar_frase (char frase[]) { int i=0; while (i<=longitud/2 && frase[i]==frase[longitud-1-i]) { i++; } if (i>longitud/2) return 1; else return 0; } //F.Ppal********************************************************************* int main (void) { char palindroma[81]; Introducir_frase (palindroma); if (Comprobar_frase (palindroma)) printf ("Dicha frase es palindroma."); else printf ("Dicha frase no es palindroma."); return 0; }
|
|
|
En línea
|
|
|
|
ҒrεακΠιи∂
Desconectado
Mensajes: 184
|
Buenas
Particularmente prefiero la respuesta de Spider a la de TheMaker (aunque tambien es valida) con algunas pequeñisimas modificaciones
Salu2, FreakMind
|
|
|
En línea
|
Connoisseurs of C semantics find C++ inferior to ++C
|
|
|
Ragnarok
|
Esto es una tontería pero bueno... Si es una tontería al menos hazlo un poco bonito, aunque para gustos los colores, pero por ejemplo habría que cambiar el void como argumento (no se pone) y el if innecesario, es como poner if i<j then return true else return false, se pone return i<j y listo. También el for está para algo, si tiene inicialización, comprobación y modificación de las variables inicializadas lo suyo es usar un for. No es buena práctica que las funciones devuelvan void, pero tengo un poco de prisa, lo demás puedes verlo por ti mismo. #include <stdio.h> #include <string.h> #define TAMANIO 81 //Declaracion de Funciones*************************************************** void Introducir_frase (char frase[]) { printf ("introducir una frase: "); } int Comprobar_frase (char frase[]){ int i, l; for (i = 0, l =strlen(frase ); i <=l /2 && frase [i ]==frase [l -1-i ]; i ++); return i>l/2; } //F.Ppal********************************************************************* int main (){ char palindroma[81]; Introducir_frase (palindroma); printf ("Dicha frase %s es palindroma.", Comprobar_frase (palindroma )?"":"no"); return 0; }
|
|
« Última modificación: 17 Septiembre 2008, 11:54 am por Ragnarok »
|
En línea
|
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
Esto es una tontería pero bueno... Si es una tontería al menos hazlo un poco bonito, aunque para gustos los colores, pero por ejemplo habría que cambiar el void como argumento (no se pone) y el if innecesario, es como poner if i<j then return true else return false, se pone return i<j y listo. También el for está para algo, si tiene inicialización, comprobación y modificación de las variables inicializadas lo suyo es usar un for. No es buena práctica que las funciones devuelvan void, pero tengo un poco de prisa, lo demás puedes verlo por ti mismo. Es una tontería, y ese código lo tengo desde que empecé a estudiar programación. Estudio administración de sistemas y esto era uno de los primeros ejercicios que hicimos, así que simplemente lo busqué y lo colgué para ayudar a este compañero. Pero la verdad es que ni lo leí, seguramente se pueda mejorar sí. PD: No se cual es el problema de poner int main(void) en lugar de int main() No creo que eso optimice el código pero bueno... Tampoco sé cual es el problema en que una función no devuelva nada, osea que sea tipo void, yo aprendí a programar así y no entiendo cual es el problema xD. Pero bueno como tú has dicho, para gustos, los colores... Saludos!
|
|
« Última modificación: 17 Septiembre 2008, 13:09 pm por Spider-Net »
|
En línea
|
|
|
|
ҒrεακΠιи∂
Desconectado
Mensajes: 184
|
Buenas Creo que para criticar, habria q criticar la actitud del que pidio el programa hecho... Con respecto a si hay que poner o no void, es cuestion de gustos. Yo personalmente me parece que es mejor aclarar que esa funcion no lleva parametros utilizando void Con el tema de usar o no void para el valor de retorno estoy entre el si y el no (un depende..). Si bien a veces es muy conveniente, otras no es necesario. Por ejemplo, si en la funcion tirara una excepcion, habria que ver si devolver algun valor es util. Pero bueno, ya que dejaron el codigo... ahi va el mio XD int isPalindromo(char *str) { int i = 0, len = strlen(str); while( i <= len && tolower(str[i++]) == tolower(str[--len]) ); return i > len; }
|
|
|
En línea
|
Connoisseurs of C semantics find C++ inferior to ++C
|
|
|
|
ҒrεακΠιи∂
Desconectado
Mensajes: 184
|
Jejejeej, pero eso es C++, el mío es en C C++ ??? donde? Y aunque lo hubiera usado, como te darias cuenta??? Salu2, FreakMind
|
|
|
En línea
|
Connoisseurs of C semantics find C++ inferior to ++C
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Palindromo con Pilas
Programación C/C++
|
Muffin
|
1
|
14,905
|
28 Enero 2011, 02:32 am
por ricardo_b
|
|
|
Duda funcion palindromo
Programación C/C++
|
cazagavilan
|
2
|
3,040
|
9 Abril 2012, 16:07 pm
por cazagavilan
|
|
|
palindromo
« 1 2 »
Programación C/C++
|
ALONSOQ
|
16
|
12,808
|
7 Agosto 2012, 17:52 pm
por X3R4CK3R
|
|
|
Palindromo C++
« 1 2 »
Programación C/C++
|
Bob1098
|
11
|
10,608
|
23 Agosto 2014, 22:45 pm
por leosansan
|
|
|
Palindromo
Java
|
vhh70
|
7
|
5,195
|
9 Junio 2016, 20:54 pm
por DIANA KARINA HM
|
|