Cita:
Iniciado por Verraco Quedaría así? lo siento por mi torpeza, pero esq me sigue pasando lo mismo :/
Muchas gracias :)
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=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 a;
clase = (a>>14)&3;
return clase;
}
Buenas, con:
int obtclase (
unsigned short a) ya no te hace falta definir otra vez abajo el
unsigned short a.
Código C:
Ver original#include <stdio.h>
unsigned short
obtclase (unsigned short a)
{
static int aux = 0;
aux = (a >> 14) & 3;
return aux;
}
int main()
{
int aux;
unsigned short ins;
printf("Dame una instrucción en hexadecimal: ");
ins = aux;
printf ("La clase de la instruccion %4.4X es %d\n", ins
, obtclase
(ins
)); return 0;
}
Así debería funcionar, de casualidad, ¿qué instrucción hexadecimal le das para que te de como resultado un número diferente a 0?