Foros del Web » Programación para mayores de 30 ;) » C/C++ »

c++, no me sale bien el resultado si es palindromo o no

Estas en el tema de c++, no me sale bien el resultado si es palindromo o no en el foro de C/C++ en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original #include<iostream> #include <string.h> #include<stdio.h>   using namespace std ;   int main ( ) {         ...
  #1 (permalink)  
Antiguo 25/11/2014, 18:55
 
Fecha de Ingreso: octubre-2014
Mensajes: 3
Antigüedad: 9 años, 5 meses
Puntos: 0
Pregunta c++, no me sale bien el resultado si es palindromo o no

Código C++:
Ver original
  1. #include<iostream>
  2. #include <string.h>
  3. #include<stdio.h>
  4.  
  5. using namespace std;
  6.  
  7. int main(){
  8.            char frase[30];
  9.            int tam,i;
  10.            bool band= true;
  11.            char resp[20];
  12.            cout<<"ingresa la frase: ";
  13.            gets(frase);
  14.            tam=strlen(frase)-1;
  15.            while(i<tam&&band){
  16.            if(frase[i]==frase[tam]){
  17.             i++;
  18.             tam--;
  19.            }else{
  20.            band= false;
  21.            }
  22.            }
  23.            if(i>tam){
  24.     strcpy(resp,"si es palindromo");
  25.     }else{
  26.     strcpy(resp,"no es palindromo");
  27.     }
  28.     cout<<resp;
  29. }
  #2 (permalink)  
Antiguo 25/11/2014, 20:10
 
Fecha de Ingreso: noviembre-2014
Mensajes: 36
Antigüedad: 9 años, 5 meses
Puntos: 13
Respuesta: c++, no me sale bien el resultado si es palindromo o no

Tu algoritmo esta bien solo en la condición de verificación de si es o no palíndromo esta el inconveniente debe ser :

Código C++:
Ver original
  1. if(band)
o
Código C++:
Ver original
  1. if(i == tam)
Y también mencionar que debes inicializar la variable i a cero

Saludos
  #3 (permalink)  
Antiguo 25/11/2014, 21:54
Avatar de leosansan  
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 11 años, 10 meses
Puntos: 49
Respuesta: c++, no me sale bien el resultado si es palindromo o no

Sólo un par de detalles a lo ya comentado por kutcher:

* Te falta el return de la función main.

* Puedes prescindir de la variable band con un simple break.

* También puedes prescindir de la variable resp y del strcpy. Sencillamente imprime el resultado, a lo que te puede ayudar el operador condicional o ternario para abreviar.

* Indenta el código con un poco más de criterio.

* El else como el if , como se pueden componer de una sola línea no necesitan llaves para el cuerpo, no así el while ya que éste si se compone de varias líneas de código.

* Te sobra la librería stdio.h y además en C++ son de la forma <cstring> y <cstdio>:

Código C++:
Ver original
  1. #include<iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7.     char frase [30];
  8.     int tam , i = 0 ;
  9.     cout << "ingresa la frase: " ;
  10.     gets ( frase ) ;
  11.     tam = strlen ( frase ) - 1 ;
  12.     while ( i < tam ) {
  13.       if ( frase [i] == frase [tam] )
  14.         i++ , tam-- ;
  15.       else
  16.         break ;
  17.     }                  
  18.     ( i >= tam ) ? cout << "si es palindromo" : cout << "no es palindromo" ;
  19.     return 0 ;
  20. }

¡¡¡Saluditos!!!


Última edición por leosansan; 25/11/2014 a las 22:01

Etiquetas: char, int, resultado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:44.