【发布时间】:2013-09-16 20:39:42
【问题描述】:
我正在处理一项任务并已部分解决。 目前我得到了正确的输出,只是相反。
这是我实现的辅助函数:
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'。
【问题讨论】:
-
如果在 putchar() 之后 flush() 会发生什么?