/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Corregir este codigo:

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
sasha12



Registrado: 27 Sep 2007
Mensajes: 9

MensajePublicado: 02/10/2007 4:07 pm
Título: Corregir este codigo:

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!
Volver arriba
digies



Registrado: 18 Nov 2005
Mensajes: 176
Ubicación: Cono Sur

MensajePublicado: 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.

Un saludo
Volver arriba
daltomi



Registrado: 28 Abr 2007
Mensajes: 107
Ubicación: Argentina

MensajePublicado: 02/10/2007 7:06 pm
Título:

En éste for:
Código:

for (int i = 1; i == 0; i++)


Traducido:
Para i:=1 mientras i=0 hacer i:= i + 1

Es decir, como i=1 y la condición de "quiebre" es "mientras i sea igual a 0", el bucle termina inmediatamente.

Saludos.
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3588
Ubicación: Mexico

MensajePublicado: 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
Volver arriba
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com