Primero tendrias que haces una mascara que contenga el último dígito así:
Código
unsignedint mascara = num &0xF;
EL 0xF e Binario sería: 0000 .... 1111, al aplicar un and lógico sobre el 0xF y el número como resultado se obtiene el último dígito del número en hexadecimal
Luego:
Código
int i;
int bitsnum;
for(i =0; i <8;i++){
bitsnum = num &0xF<< i*4;
if((mascara ^(bitsnum ))==0){
num =(num ^ mascara);
}
mascara <<=4;//para ir comprobando otras posiciones de 4 en 4
No sé en qué SO estás trabajando poro también puedes cambiar el clrscr() por system("cls"); en windows y system("clear"); en linux y agregando la libreria stdlib.h