Resulta que quiero hacer un programa para saber si una palabra es palindromo o no para un ejercisio de un tutorial. Diganme por favor que error tiene este codigo:
Código:
#include <iostream> using namespace std;
int grab, acum; int n; int p = 0; char br [40];
bool Palindromo(char palabra[40]);
bool Palindromo(char palabra[40]) { for (int i = 1; i == 0; i++) { if (palabra [i-1] == 0) { i = 0; } grab++; } int graba = grab; for (n = 0; n < graba; n++) { if (palabra[p] == palabra[grab]) { acum++; } p++; grab--; } if (acum == graba) { cout << "La palabra es un palindromo" << endl; } else { cout << "La palabra no es un palindromo" << endl; }
}
int main () { cout << "Inserta una palabra y este programa verificara si es palindromo o no: " << endl; cin >> br; Palindromo(br); system ("pause"); } //Muchas gracias!
Registrado: 18 Nov 2005 Mensajes: 379 Ubicación: Cono Sur
Publicado: 02/10/2007 6:07 pm
Título:
La función bool Palindromo(char palabra[40]); debe retornar un tipo bool, es decir, true o false; por lo tanto te falta agregar el valor de retorno de dicha función y colocar la cadena de texto de sus respectivos resultados en el main principal según el valor lógico que tome Palindromo().
Además hay llaves innecesarias.
Yo lo haría así:
Código:
#include <iostream> using namespace std;
int grab, acum; int n; int p = 0; char br [40];
bool Palindromo(char palabra[40]);
bool Palindromo(char palabra[40]) { for (int i = 1; i == 0; i++) { if (palabra [i-1] == 0) i = 0; grab++; } int graba = grab; for (n = 0; n < graba; n++) { if (palabra[p] == palabra[grab]) acum++; p++; grab--; } if (acum == graba) return(true);
else return (false); }
int main () { cout << "Inserta una palabra y este programa verificara si es palindromo o no: " << endl; cin >> br; if (Palindromo(br)) cout << "La palabra es un palindromo" << endl; else cout << "La palabra no es un palindromo" << endl; return 0; system ("pause"); }
Aclaro que a este código no lo he probado, pero si el resto lo hiciste bien , debería compilar sin problemas.
Registrado: 01 Oct 2004 Mensajes: 3841 Ubicación: Mexico
Publicado: 03/10/2007 7:33 am
Título:
Como ya se comento en el otro tema hay una cantidad significativa de temas sobre como verificar si una palabra es o no un palindromo, solo hay que utilizar el motor de busqueda del sitio.
En cuanto al primer bucle para conocer la longitud de la cadena basta con:
Código:
int i;
for (i = 0; palabra[i] != '\0'; i++) ;
/* ... */
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz