Menu de transformar numero decimal a binario,octal y hexadecimal

Iniciado por chaarlyyyy, 29 Mayo 2010, 21:19 PM

0 Miembros y 1 Visitante están viendo este tema.

chaarlyyyy

hola amigos tngo un problema con este ejercicio bueno 1º los hice por separado y todo bn pero ahora al tratar de unirlos en un menu al momneto de ejecutarlo se cae al apretar una opcion y no se q pasa xa si pueden ayudarme


#include<stdio.h>
#include<conio.h>

void binario(int num)
{
int a[100],i,dividendo,cociente,resto,n=0;
clrscr();
for(dividendo = num; dividendo > 0;n++)
{
 cociente=dividendo/2;
 resto=dividendo%2;
 a[n]=resto;
 dividendo=cociente;
}
 printf("El numero decimal %d equivale en Binario a: ", num);
  for( i=n-1; i>=0; i--)
   {
    printf("%d",a);
   }
   getch();
}

void octal(int num)
{
int a[100],i,dividendo,cociente,resto,n=0;
clrscr();
for(dividendo = num; dividendo > 0;n++)
{
 cociente=dividendo/8;
 resto=dividendo%8;
 a[n]=resto;
 dividendo=cociente;
}
 printf("El numero decimal %d equivale en Octal a: ", num);
  for( i=n-1; i>=0; i--)
   {
    printf("%d",a);
   }
   getch();
}

void hexadecimal(int num)
{
int a[100],i,dividendo,cociente,resto,n=0;
clrscr();
for(dividendo = num; dividendo > 0;n++)
{
 cociente=dividendo/16;
 resto=dividendo%16;
 a[n]=resto;
 dividendo=cociente;
}
 printf("El numero decimal %d equivale en Hexadecimal a: ", num);
  for( i=n-1; i>=0; i--)
   {
    printf("%d",a);
   }
   getch();
}


int main()
{
int a[100],n1,num,n=0;
int op;
printf("Ingrese numero: ");
scanf("%d",& n1);
clrscr();
    printf(" ***CONVERSION DE NUMEROS A OTRA BASE***\n\n");
    printf(" 1.- Decimal a Binario.\n");
    printf(" 2.- Decimal a Octal.\n");
    printf(" 3.- Decimal a Hexadecimal.\n");
    printf(" 4.- Salir.\n");
    printf(" \n\nEscoje tu opcion: ");
    scanf("%d",&op);
    op=getche();

   if(op==1|| op==2|| op==3)
    num=n1;
 

    if(op==1)
      binario(num);
    else if(op==2)
      octal(num);
    else if(op==3)
      hexadecimal(num);
    else if(op==4)
      getch();
    else
    {
      printf("\nOpcion invalida");
      getch();
    }

return 0;
}

[L]ord [R]NA


.:BlackCoder:.

Lo mio es C++ pero estas seguro que esto esta bien?
scanf("%d",&op);
     op=getche();


Verifica, porque creo que debes quitar la segunda linea... De esa sección...

Saludos...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




nicolas_cof

#3
Fijate en el siguiente tema, en el ultimo post te podes dar una idea de un menu :P

http://foro.elhacker.net/programacion_cc/burbujainsercion_y_seleccion-t294683.0.html

Otra cosa, no es recomendable usar la libreria conio.h ya que no es estandar. Mas bien usa para limpiar pantalla
#include <stdlib.h>
...
system( "cls" ); // Windows
system( "clear" ); // Linux


y cambia getch() por getchar() de la libreria stdio.h

Salu10.