Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: chaarlyyyy en 29 Mayo 2010, 21:19 pm



Título: Menu de transformar numero decimal a binario,octal y hexadecimal
Publicado por: chaarlyyyy en 29 Mayo 2010, 21:19 pm
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;
}


Título: Re: Menu de transformar numero decimal a binario,octal y hexadecimal
Publicado por: [L]ord [R]NA en 30 Mayo 2010, 02:30 am
existe algo que le pusieron al foro llamado GESHI


Título: Re: Menu de transformar numero decimal a binario,octal y hexadecimal
Publicado por: .:BlackCoder:. en 30 Mayo 2010, 03:19 am
Lo mio es C++ pero estas seguro que esto esta bien?
Código
  1. scanf("%d",&op);
  2.     op=getche();

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

Saludos...


Título: Re: Menu de transformar numero decimal a binario,octal y hexadecimal
Publicado por: nicolas_cof en 30 Mayo 2010, 05:47 am
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
Código:
#include <stdlib.h>
...
system( "cls" ); // Windows
system( "clear" ); // Linux

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

Salu10.