【发布时间】:2015-05-05 22:29:03
【问题描述】:
#include <stdlib.h>
#include <stdio.h>
#define SIZE 25
int main (void)
{
int d, b, c;
printf(" Enter an integer and press 'enter':\n");
scanf("%d" , &d);
printf(" Enter the desired base and press 'enter':\n");
scanf("%d" , &b);
if (b < 2) {
printf(" Your base is to low! \n")
} else {
while (d != 0) {
int radix;
radix = d % b;
d = d / b;
char basechars[] = "0123456789ABCDEF";
printf("%c" , basechards[radix]);
}
}
return 0;
}
此程序提示用户输入小数和基数,以将该小数转换为已选择的基数。然而,转换是以相反的顺序打印的,我需要它来定期打印。示例:输入:112,然后输入 16,结果是 07 而不是 70。
【问题讨论】:
-
将数字存储在数组中而不是打印出来,然后反向打印数组。
-
好吧,如果挑剔的话,16 以上的基数也是有效的,并且不会被这个程序正确处理(实际上是未定义的行为)。
-
@WeatherVane 我更关心
0的表示.. -
@EugeneSh。如果您的评论与乔恩的评论有关,则根本没有标记;-)
-
@EugeneSh
0是一个新奇事物。它根本不存在,也许现在还没有。
标签: c arrays decimal converter radix