Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/12/2013, 10:47
Avatar de Verraco
Verraco
 
Fecha de Ingreso: diciembre-2013
Mensajes: 3
Antigüedad: 10 años, 5 meses
Puntos: 0
Pregunta Error al definir mi propia función

Hola amigos!! Soy nuevo en el foro y me he registrado para poder pedir ayuda con todas mis dudas sobre la programación en C++ y si puedo, poder ayudar yo tambien.

Esta vez mi problema es el siguiente, me piden que haga un programa que pida por teclado una instrucción hexadecimal y que muestre a que clase pertenece(movimiento, lógico-aritméticas, salto incondicional o salto condicional).
Este es el código:

#include <stdio.h>

int obtclase (unsigned short a);

int main()
{
int aux;
unsigned short ins;
int clase;

printf ("EJERCICIO 6, 7 y 8.\n\n");

printf ("Dame una instruccion en hexadecimal: ");
fflush (stdin);
scanf ("%x", &aux);

ins=aux;
clase=(ins>>14)&3;

printf ("La clase de la instruccion %4.4X es %d\n", ins, clase);
return 0;
}


Hasta ahí todo correcto, pero en el siguiente apartado me dicen que haga mi propia función llamada obtclase que sustituye en el código a "(ins>>14)&3".
El digo de este apartado es este:

#include <stdio.h>

int obtclase (unsigned short a);

int main()
{
int aux;
unsigned short ins;
int clase;

printf ("EJERCICIO 6, 7 y 8.\n\n");

printf ("Dame una instruccion en hexadecimal: ");
fflush (stdin);
scanf ("%x", &aux);

ins=aux;
clase=obtclase(ins);

printf ("La clase de la instruccion %4.4X es %d\n", ins, clase);
return 0;
}

int obtclase (unsigned short a)
{
int clase;
unsigned short ins;
clase == (ins>>14)&3;

return clase;
}

El problema es que me he equivocado en algo ya que en el segundo programa sale que la clase de la instrucción es siempre 0. Mientras que en el primer programa iba de 0 a 3

Si alguien sabe en que me he equivocado me ayudaría muchísimo

Saludos y gracias :)