Problema decimal - hexadecimal en C

Iniciado por joraloma, 8 Diciembre 2014, 13:19 PM

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

joraloma

Buenas, estoy empezando en esto de C, y tengo un ejercicio con punteros y tablas pero no me sale bien, agradecería que le echasen un ojo al codigo, gracias!

/*
**     Fichero:  <nombre del fichero>
**       Autor:  <nombre del alumno>
**       Fecha:  <fecha de última edición>
**
** Descripcion:  <Descripción sucinta del contenido del fichero>
*/

/* Includes del sistema */
#include <stdio.h>

/* Includes de la aplicacion */
#include "decHex.h"

/* Definición de constantes */


/* Tipos definidos por el usuario */


/* Declaración de funciones locales. Para cada función: */
/*
**   Parámetros:  <tipo1> <parm1> <Descripción>
**                <tipo2> <parm2> <Descripción>
**                ...
**     Devuelve:  <tipo> <Descripción>
**
**  Descripción:  <Descripción>
*/
int leeNumero(signed char tipoNumero);
void decBin(int numero, int i, char * pfaux);
/************************************************************/

int main()
{
  int tipoNumero;
  int numero;
  int i;
  char tabcaracteres[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  char * pfaux=tabcaracteres;
  i=0;
  tipoNumero=0;
  numero=(leeNumero(tipoNumero));
  printf("El numero en hexadecimal es: %d",numero);
  decBin(numero, i, pfaux);
  printf("\n");
  return 0;
}

/* Definiciones de funciones  */

int leeNumero(signed char tipoNumero)
{
  int valorentero;
  int valorreal;
  int valor;
  valorentero=0;
  valorreal=0;
  if (tipoNumero)
    {
      printf(T_INTRODUZCA_NUMERO2);
      scanf("%d", &valorreal);
    }
  else
    {
      do
{
      printf(T_INTRODUZCA_NUMERO);
      scanf("%d", &valorentero);
}
      while (valorentero<0);
    }
  valor=valorentero+valorreal;
  return valor;
}

void decBin(int numero, int i, char * pfaux)
{
  int resto;
  if (numero==0)
    printf("%d",numero);
  else if (numero==1)
    printf("%d",numero);
  else if ((numero/16)==1)
    {
      printf("%d",(numero/16));
      printf("%d",(numero%16));
      while((i-1)>=0)
    {
      printf("%d",*(pfaux+(i-1)));
     i++;
    }

    }
  else
    {
      resto=(numero%16);
      numero=numero/16;
      *(pfaux+i)=numero;
      decBin((numero/16),( i+1), pfaux);
    }

}


Esque ando un poco perdido

engel lex

Cita de: joraloma en  8 Diciembre 2014, 13:19 PM
Buenas, estoy empezando en esto de C, y tengo un ejercicio con punteros y tablas pero no me sale bien, agradecería que le echasen un ojo al codigo, gracias!

no te sale bien que? te da errores? da detalles para no tener que andar a ciegas tratando de ayudar
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.