Ti posso fare un esempio di utilizzo delle union, ma per l'esercizio devi provvedere tu perché in generale qui si tende a non fare il lavoro al posto degli altri... innanzitutto perché sarebbe controproducente, e poi perché non è detto che gli utenti abbiano tempo e/o voglia per farlo :)

codice:
#include <stdio.h>

typedef union float_int {
	float float_value;
	long int int_value;
} Float_Int;

int main(void)
{
	Float_Int my_union;

	printf("Immetti un numero intero: ");
	while (scanf("%ld", &(my_union.int_value)) != 1) {
		while (getchar() != '\n');
	}

	printf("Il numero floating point corrispondente è: %e\n", my_union.float_value);

	return 0;
}
in sostanza int_value e float_value condividono la stessa memoria, quindi hanno la stessa rappresentazione binaria. Sfrutta questo fatto...