Código:
//Incluimos las librerías propias y del sistema
#include <stdio.h>
#include "decBin.h"
//Declaramos las funciones
int leeNumero();
void decBin(int n);
int main()
{
int n;
n = leeNumero();
if (n > 0)
{
decBin(n);
}
printf("\n");
return 0;
}
int leeNumero()
{
int numero;
do
{
printf(T_INTRODUZCA_NUMERO);
scanf("\n%d", &numero);
}
while (numero < 0); /*Con este bucle hacemos que si el numero introducido
es negativo, no lo procese y vuelva a pedirlo */
return numero;
}
//La funcion decBin realiza la conversión decimal-binario
void decBin(int n)
{
if (n == 0)
printf("0");
else if (n == 1)
printf("1");
else
{
decBin(n / 2);
printf("%d", n % 2);
}
}
Aquí os pongo el fichero decBin.h:
Código:
#ifndef DECBIN_H
#define DECBIN_H
#define T_INTRODUZCA_NUMERO "Introduzca un numero no negativo: "
#define T_INTRODUZCA_NUMERO2 "Introduzca un numero: "
#endif
Me compila bien, sin avisos ni nada, y funciona bien salvo cuando le digo que me convierta el 0 en binario (qué evidentemente sigue siendo 0), lo que hace es salir del programa, ¿alguna solución?
Gracias de antemano y un saludo!