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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicios
| | | |-+  No sé por qué no funciona (conversor decimal-binario)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No sé por qué no funciona (conversor decimal-binario)  (Leído 2,433 veces)
pablo256

Desconectado Desconectado

Mensajes: 9


Ver Perfil
No sé por qué no funciona (conversor decimal-binario)
« en: 6 Abril 2015, 23:39 pm »

Muy buenas a todos/as! Haciendo el ejercicio 102 de C (aunque en C++, que es lo que estoy aprendiendo), se me ocurrió utilizar una función recursiva que fuera escribiendo los valores en un array desde el índice 0 hasta el índice x, pero no sé por qué no funciona (al final con un par de bucles for escribo los datos y los muestro en pantalla). Si alguien pudiera decirme en qué falla la función le estaría muy agradecido  :D

Aquí está:
Código:
        void convbin( int num, int index ){
        if ( num <= 2 ){
              bin[index + 1] = num%2;
             }
        else {
              convbin (num/2, 0);
             }
        }

Saludos!


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: No sé por qué no funciona (conversor decimal-binario)
« Respuesta #1 en: 7 Abril 2015, 10:24 am »

No me fijé mucho pero en la llamada recursiva, siempre envías index=0.


En línea

pablo256

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: No sé por qué no funciona (conversor decimal-binario)
« Respuesta #2 en: 7 Abril 2015, 13:04 pm »

Muchas gracias por tu respuesta, voy a ver si llego a alguna solución jajajalo dejaba en 0 porque no quería que aumentara el valor hasta llegar al if, pero tienes razón, así como está siempre va a ser 1 aún después de llegar al if.
Saludos!
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: No sé por qué no funciona (conversor decimal-binario)
« Respuesta #3 en: 7 Abril 2015, 13:49 pm »

Por si te interesa, modifiqué un poco el código para que quede funcional. Eso sí, el array queda invertido.

Spoiler

void convbin( int num, int index ){
    if ( num > 0 ){
        bin[index] = num%2;
        convbin (num/2, index+1);
    }
}
En línea

pablo256

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: No sé por qué no funciona (conversor decimal-binario)
« Respuesta #4 en: 7 Abril 2015, 16:03 pm »

Muchas gracias! Lo que no entiendo es a qué te refieres con que queda invertido, en principio el primer módulo (el que estaría a la izquierda) lo escribe en la posición
  • no? Así queda mucho mejor que le mío la verdad jajaja
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: No sé por qué no funciona (conversor decimal-binario)
« Respuesta #5 en: 7 Abril 2015, 17:32 pm »

Invertido me refería a que si leemos del 0 al X el array, queda "01011", cuando el orden de lectura normal es "11010". pero bueno, era solo un dato xD
En línea

pablo256

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: No sé por qué no funciona (conversor decimal-binario)
« Respuesta #6 en: 13 Abril 2015, 10:05 am »

Aaah, pero así queda con un bucle también, luego se imprime desde el último índice escrito y ya está  :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines