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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  capicua de un rango de numeros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: capicua de un rango de numeros  (Leído 9,444 veces)
ryan parker

Desconectado Desconectado

Mensajes: 81



Ver Perfil
capicua de un rango de numeros
« en: 3 Junio 2011, 20:55 pm »

Hola gente :)

Bueno a ver si me hechan un cable con este code, que en mi pseudodigo funciona, pero llevado al programa y ejecutado este no muestra el capicua de forma correcta:
Código
  1. #include<stdio.h>
  2. main()
  3. {
  4.   int num, max, min, banmin=0, banmax=0, aux, resto, invertido=0;
  5.  
  6.   do{
  7.        printf("\nIngrese Minimo: ");
  8.        scanf("%d", &min);
  9.        if(min < 0 || min < 9)
  10.          printf("\nIngrese correctamente\nSugerencia: Numeros de 2 digitos");
  11.        else
  12.          banmin=1;
  13.   }while(banmin == 0);
  14.  
  15.   do{
  16.        printf("\nIngrese Maximo: ");
  17.        scanf("%d", &max);
  18.        if(max < min)
  19.          printf("\nMaximo es menor que minimo\nIngrese Nuevamente");
  20.        else
  21.          banmax=1;
  22.   }while(banmax == 0);
  23.  
  24.   do{
  25.       num = min;
  26.       aux = num;
  27.  
  28.       while(num > 0)
  29.       {
  30.           resto = num % 10;
  31.           num = num / 10;
  32.           invertido = invertido*10 + resto;
  33.       };
  34.  
  35.       if(invertido == aux)
  36.          printf("\nEl numero es capicua: ", aux);
  37.  
  38.      min = min + 1;
  39.  
  40.   } while ( min < max);
  41.  
  42.  return 0;
  43. }

Si ingresan datos de 10 - 20, debe de mostrar 11 como capicua.
Pero ingresan datos de 11-12, muestra recientemente el capicua algo que no entiendo.

En fin saludos


En línea

Your kung-fu is not strong!
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: capicua de un rango de numeros
« Respuesta #1 en: 3 Junio 2011, 21:37 pm »

Dos cosas: no se entiende bien tu problema tal como lo expresas, De hecho lo he entendido leyendo tu código más que tu post.

Código
  1. printf("\nEl numero es capicua: ", aux);
  2.  

te falta decirle a printf que ha de imprimir un entero:

Código
  1. printf("\nEl numero es capicua: %d", aux);
  2.  

Por otro lado,

Código
  1. if(min < 0 || min < 9)

Eso se puede reducir a una única condicion, la segunda. Los números <0, están englobados en aquellos <9.



En línea

ryan parker

Desconectado Desconectado

Mensajes: 81



Ver Perfil
Re: capicua de un rango de numeros
« Respuesta #2 en: 4 Junio 2011, 16:45 pm »

jeje creo que muy rapido escribi este code, que olvide el %d, bueno lo del <9 tenes razon.

Pero eso no soluciona el problema.

Aun sigue sin el rango de numeros de capicua.
En línea

Your kung-fu is not strong!
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: capicua de un rango de numeros
« Respuesta #3 en: 4 Junio 2011, 17:15 pm »

Tu fallo es que invertido no se inicializa en cada iteración, por tanto, da resultados extraños:

Ingrese Minimo: 10                                                                      
                                                                                        
Ingrese Maximo: 15                                                                      
                                                                                        
El numero es capicua: 1                                                                  
El numero es capicua: 111                                                                
El numero es capicua: 11121                                                              
El numero es capicua: 1112131                                                            
El numero es capicua: 111213141

tu código tal cual está imprimiendo si invertido NO es igual a aux da lo de arriba.

La simple correción es:

Código
  1. invertido=0; //añade esto
  2. while(num > 0)
  3.       {
  4.           resto = num % 10;
  5.           num = num / 10;
  6.           invertido = invertido*10 + resto;
  7.       };

y el resultado:

Ingrese Minimo: 10                                                                       
                                                                                         
Ingrese Maximo: 23                                                                       
                                                                                         
El numero es capicua: 11                                                                 
El numero es capicua: 22
En línea

ryan parker

Desconectado Desconectado

Mensajes: 81



Ver Perfil
Re: capicua de un rango de numeros
« Respuesta #4 en: 4 Junio 2011, 18:48 pm »

pues  acabo de volver de mi casa y de ver este problema de logica, agarre al cuaderno hice las mismas pruebas  que mencionas   incluyendo en el  do  - while  del  min <=  max,  escribi los printf pa  ver onde andaba el error, obteniendo los mismos codes extraños .

En fin  acabo de  entrar  al ciber y  ya tenes el error.

se agradece de todas maneras, bueno hice  unos cambios  pero =  se ve bien.

Código
  1. while(max >= min){
  2.        num = min;
  3.        aux = num;
  4.        resultado = 0;
  5.        while(num > 0){
  6.            resto = num % 10;
  7.            num = num / 10;
  8.            resultado = resultado * 10 + resto;
  9.        }
  10.        if(resultado == aux)
  11.            printf("\nEl numero: %d es capicua --> %d", aux, resultado);
  12.        min = min + 1;
  13. }

Saludos
En línea

Your kung-fu is not strong!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Números capicúa « 1 2 3 »
Programación C/C++
suzy 24 19,653 Último mensaje 10 Marzo 2013, 22:34 pm
por suzy
Limitar rango de numeros en funcion
Programación C/C++
luis456 1 3,550 Último mensaje 15 Abril 2013, 20:58 pm
por leosansan
Como puedo saber los números que faltan dentro del rango ? « 1 2 3 »
.NET (C#, VB.NET, ASP)
luis456 24 14,596 Último mensaje 28 Enero 2014, 11:43 am
por luis456
Comprobar rango de números
Programación Visual Basic
rapbyone 5 3,433 Último mensaje 16 Abril 2016, 09:36 am
por pkj
[PYTHON]¿Cómo guardar datos de un rango de números que genero con un While?
Python
4T1L4 2 3,516 Último mensaje 24 Octubre 2016, 15:23 pm
por 4T1L4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines