这是十进制转二进制和十六进制的代码,为什么转出十六进制有问题,不是没有就是只有一位,求点拨
#include<stdio.h>int main()
{
int num, x, i = 0, j = 0, k, bin[30];
char hex[10], n[16] =
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F' };
printf("");
scanf("%d", &num);
x = num;
while (x)
{
bin[i] = x % 2;
x /= 2;
i++;
}
while (num)
{
hex[j] = n[num % 16];
num /= 16;
j++;
}
for (k = i - 1; k >= 0; k--)
printf("%d", bin[k]);
printf("\n");
for (k = j - 1; k >= 0; k--)
printf("%c", hex[k]);
return 0;
}