elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda programa c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda programa c++  (Leído 2,420 veces)
thealberteitor

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Duda programa c++
« en: 10 Agosto 2016, 20:03 pm »

Buenas, tengo un problemin con este programa el cual te dice si un número es capicua o no. Compila bien pero debe de haber un error en la función Es_booleana pero no lo veo. Por ejemplo, el número 64546 es capicúa y te dice que no lo es. (Un número es capicúa cuando se lee igual para delante que para atrás). He buscado el algoritmo por internet y la mayoría son como el mio por eso no entiendo el error. Alguien puede ayudarme? Gracias


#include<iostream>

using namespace std;

int NumDigitos(int num){
 
  int cont=0;
  while(num){
    cont++;
    num/=10;
  }
  return cont;
}

bool Es_capicua(int num){
   
   int total = NumDigitos(num);
   int v[total-1];
   
   bool es_capicua=false;
   
   for(int i=0; i<=total; i++){
      v=num%10;
      num/=10;
   }
   
   for(int i=0; i<total; i++){
      if(v==v[total-i])
         es_capicua=true;
   }
   return es_capicua;
}
   

int main(){
   
   int n;
   cin >> n;
   
   bool es_capicua = Es_capicua(n);
   
   if(es_capicua)
      cout << "Es capicua" << endl;
   else
      cout << "No es capicua" << endl;
}
   
   
   


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Duda programa c++
« Respuesta #1 en: 10 Agosto 2016, 20:17 pm »

Lo mas recomenble para determinar si un numero es Capicua o no lo es, es leer el numero como cadena de texto.

Determinar la longitud de la cadena y evaluar en un ciclo hasta que recorras la mitad de la cadena.

Tedejo un ejemplo que ya tenia hecho ya que al momento de que pegas tu codigo sin GeSHi, se pierden los index de los arreglos:

Código
  1. #include<stdio.h>
  2. #include<stdbool.h>
  3. #include<string.h>
  4.  
  5. int main() {
  6. bool capicua = true;
  7. int longitud,i;
  8. char numero[10] = "";
  9. printf("Ingrese un numero: ");
  10. fgets(numero,10,stdin);
  11. longitud = strlen(numero);
  12. numero[longitud-1] = 0;
  13. longitud = strlen(numero);
  14. longitud -=1;
  15. printf("Longitud del numero %i\n",longitud );
  16. i = 0;
  17. while(i <= longitud && capicua) {
  18. if(numero[i] != numero[longitud]) {
  19. capicua = false;
  20. }
  21. i++;
  22. longitud--;
  23. }
  24. if(capicua) {
  25. printf("El numero es Capicua!\n");
  26. }
  27. else{
  28. printf("El numero NO es Capicua!\n");
  29. }
  30. return 0;
  31. }



En línea

MessageBoxA

Desconectado Desconectado

Mensajes: 229


ayudame a ayudarte


Ver Perfil WWW
Re: Duda programa c++
« Respuesta #2 en: 11 Agosto 2016, 03:18 am »

ve aqui
http://foro.elhacker.net/programacion_cc/funcion_palindromo-t228165.0.html
En línea

SI LA MATRIX FUERA PERFECTA.... ESTARÍA ESCRITA EN C++
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda Programa MSN « 1 2 »
Programación Visual Basic
UTU 18 7,904 Último mensaje 16 Agosto 2006, 11:55 am
por Meg
duda con un programa en c#
.NET (C#, VB.NET, ASP)
jugran28 2 5,795 Último mensaje 15 Noviembre 2007, 18:11 pm
por jugran28
Duda programa en C
Programación C/C++
gorystyle 4 3,307 Último mensaje 10 Mayo 2010, 06:42 am
por nicolasblues86
Duda: Programa devolviendo valor a otro programa
Programación C/C++
erest0r 6 3,563 Último mensaje 3 Julio 2015, 01:38 am
por erest0r
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines