我正在处理一项任务并部分解决。目前我得到了正确的输出,只是相反。
这是我实现的辅助函数:
char int2char (int radix, int value) {
char c = '?';
if ((value >= 0 && value < radix) && (radix <= 36 && radix >= 2)){
if (value < 10){
c = value + 48;
}
else if (value >= 10 && value < 36) {
c = value + 55;
}
}
return c;
}
到目前为止,我遇到困难的实际功能是这样的:
void int2str (int radix, int value) {
int result = value % radix;
int division = value / radix;
char c;
c = int2char(radix, result);
putchar(c);
while (division > 0) {
return int2str(radix, division);
}
}
第一个函数用于以十六进制表示数字 10-35。因此,如果模数产生一个 11,例如,我应该输出一个“B”。
这很好用,除了倒退!而且我不知道如何扭转它。最大的障碍是您只能使用 putchar() 作为输出。没有字符串,没有数组。
为了进一步澄清,如果我输入:
int2str 16 60
输出应该是'3C',而不是我得到'C3'。