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;
}
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
gracias las correciones estan bien pero como hago para que me diga si es o no un palindromo la palabra ingresada?
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();
}
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...