Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: dayitha en 19 Noviembre 2011, 02:27 am



Título: ayudenme porfavor en programacion C
Publicado por: dayitha en 19 Noviembre 2011, 02:27 am
tengo que crear un programa que me diga si es un palindromo o no esto es lo que tengo pero me tira error en la parte de for(int

#include <stdio.h>
#include <string.h>

int main(){
    int resultado = 1; //1=verdadero; 0=falso
    char palabra[100];
    int largo;
   
    scanf("%s",&palabra);
    largo = strlen(palabra);
   
  aqui me da error  for (int i=0;i <(largo/2); i++ );

         
                    if(palabra != palabra[largo-i])
            resultado = 0;
     
           
    return 0;
    }


Título: Re: ayudenme porfavor en programacion C
Publicado por: rir3760 en 19 Noviembre 2011, 02:38 am
Los problemas en ese programa son tres: el primero que declarar una variable en un bucle "for" depende del compilador (para ser exactos de su soporte de C99), el segundo es el punto y coma de mas justo después del bucle "for" y el tercero que el condicional "if" esta mal. Tampoco imprimes mensaje alguno para indicar el resultado.

Las correcciones son:
Código
  1. int i;
  2.  
  3. /* ... */
  4.  
  5. for (i = 0; i < (largo / 2); i++ )
  6.   if (palabra[i] != palabra[largo - 1 - i])
  7.      resultado = 0;
  8.  
  9. /* Impresion del resultado */

Tambien puedes utilizar el motor de busqueda para revisar los ejemplos sobre como realizar ese programa.

Un saludo


Título: Re: ayudenme porfavor en programacion C
Publicado por: dayitha en 19 Noviembre 2011, 02:50 am
gracias las correciones estan bien pero como hago para que me diga si es o no un palindromo la palabra ingresada?


Título: Re: ayudenme porfavor en programacion C
Publicado por: dayitha en 19 Noviembre 2011, 02:54 am
esto es lo q tengo



#include <stdio.h>
#include <string.h>

int main(){
    int resultado = 1; //1=verdadero; 0=falso
    char palabra[100];
    int largo;
    int i;
    printf("Intrduzca una palabra o numero, luego pulse ENTER");
scanf("%d",&palabra);
   
    scanf("%s",&palabra);
    largo = strlen(palabra); 
   
   
for (i = 0; i < (largo / 2); i++ )
   if (palabra != palabra[largo - 1 - i])
      resultado = 0;
         
                 
    getch();
}


Título: Re: ayudenme porfavor en programacion C
Publicado por: x64core en 19 Noviembre 2011, 03:02 am
hola :)
mira mas o menos el algoritmo que e pensado es asi:
obtener la longitud total de la palabra, frase
luego con un bucle for recorrer cada caracter... incrementar la longitud de inicio y decrementar la longitud maxima
eso se puede hacer en una sola variable... y comparar el ascii del caracter o puede hacer una comparacion de cadena
pero creo que seria mejor el ascii...
hacer una condicion if... si es igual continuar con el bucle si es distinta salir mostrar aviso y salir...