#include <stdio.h>
#include <stdlib.h>
void show_array(int *, int );
int main()
{
int a, b, c, i, j;
int count = 0, addr = -1;
int len = 0;
scanf("%d, %d", &a, &c);v // a是输入的十进制数,c是需要的进制
b = a;
//二进制转换,存入数组array_a
while (a/c)
{
a = a / c;
len++;
}
int array_a[len+1];
for(i=len; i>-1; i--)
{
array_a[i] = b%c;
b = b/c;
}
show_array(array_a, len+1);
return 0;
}
void show_array(int * a, int len)
{
int i;
for(i=0; i<len; i++)
{
if (a[i] < 10)
printf("%d", a[i]); //小于10直接输出
else
printf("%c", a[i] + 55); //大于10转换成字符输出
} //其实注意一点:在输入 85,45 时会出现其他字符,我想想也很正常,因为本来就是用ascii码来表示,输出不一定就是字母。
return ;
}
有问题可留言交流~