#include
void main()
{
/* b[16]为数组,n—十进制数,m—进制类型,r—余数,i—循环变量,k—下标 */
int b[16],t,m,n,k,r,i;
printf("请输入一个十进制整数: "); /* 输入提示 */
scanf("%d",&n);
printf("请输入一个要转换的进制类型(2,8,16): "); /* 输入提示 */
scanf("%d",&m);
t=n; /* 用t暂存n */
k=-1; /* k为数组下标, 初值为-1 */
/*在两条星线间填入代码, 用辗转相除法将十进制数转换为m进制数并存入数组b*/
/**********************************************************************/
if(m != 2 && m!= 8 && m!=16)
{
printf("输入的进制数不是2,8,16其中之一,默认使用2!!!!!!!\n");
m = 2;
}
while(n) {
r = n % m;
n = n / m;
b[++k] = r;
}
/**********************************************************************/
/*输出提示*/
printf("十进制整数%d转换为%d进制数,结果=",t,m);
/*在两条星线间填入代码, 从高位到低位输出数组b(使用switch多分支语句)*/
/*********************************************************************/
for(i = k;i >= 0;i--)
printf("%d", b[i]);
/*********************************************************************/
printf("\n"); /* 换行 */
}