char bcd[10][5]={"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001"}
void hex2bcd(int x)
{if(x>9)hex2bcd(x/10)
printf("%s ",bcd[x%10])
}
int main()
{int n
printf("请输入一个十六进制数:")
scanf("%x",&n)
hex2bcd(n)
return 0
}
你不应该写16进制转BCD码的程序,你应该写10进制转BCD码的程序,例如 36—>0x36 这就是10进制转BCD码,而你所做的16进制转BCD码是这样的:0x36—>0x36