判断一个程序是否合适

BC D数石用一个字节来表示两位十进制,每四个比特表一位,如果一个BCD数十六进制是O×12,他表达的就是十进制的12,但小明没学过BCD,把所有的BCD都当做儿进制转换成十进制输出于是BCD的O×12被输出十进制的18了,你的程序要读入错误的十进制,然后输出正确的十进制,可以把18转换成O×12,转换回12

这个题目有一点没看懂,不知道这个BCD是怎么表示数据的,但是根据题目后面的要求,我就简单的认为:小明把BCD转换为错误的十进制,十位乘以了16,所以如果要改回原来的数,把这个十位除以16求出原来的十位,然后整个数对16求余求出原来的个位,就可以了,我是这么理解的,不知道对不对,供参考,代码如下:

#include <stdio.h>

int main(void){
    
    
    char BCD;
    int errorDec;
    
    printf("请输入要转换的错误十进制:");
    scanf("%d",&errorDec); //错误的十进制,相当正常的十六进制 
    
    int one = errorDec%16;
    int ten = errorDec/16;
    
    BCD = ten*10+one;  //BCD就相当于正常的十进制 
    
    printf("经过计算,错误十进制%d对应的正确十进制是:%d\n",
    errorDec,BCD);
    
    
    
    return 0; 
    
    
    
    
} 

img