ayudenme porfavor en programacion C

Iniciado por dayitha, 19 Noviembre 2011, 02:27 AM

0 Miembros y 1 Visitante están viendo este tema.

dayitha

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;
    }

rir3760

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:
int i;

/* ... */
   
for (i = 0; i < (largo / 2); i++ )
   if (palabra[i] != palabra[largo - 1 - i])
      resultado = 0;

/* Impresion del resultado */


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

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

dayitha

gracias las correciones estan bien pero como hago para que me diga si es o no un palindromo la palabra ingresada?

dayitha

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();
}

x64core

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