1. 编写将一个十进制数M转化成N进制数(2≤N≤16)的程序。提示:转化成N进制数的各位数可以分别放在数组的各个元素中。
#include <stdio.h>
#include <stdlib.h>
#define N 16
void showjinzhi(int *a, int n,int q)
{
for (int i = 0; i < N; i++)
{
if ((i + 1) % 4 == 0)
{
printf(" "); //每隔四个打印空格
}
if (a[i]>=10) //超过10,打印字符
{
printf("%3c", a[i]+55); //转换成字母
}
else
{
printf("%3d", a[i]);
}
a[i] = 0; //打印完毕清空数据
}
printf(" %2d进制",q);
printf("\n");
}
void zhuanhuan(int *a,int num,int n,int be,int end)
{
for (int i = 2; i <=16;i++)
{
int k = num;
int x = N-1; //从后往前存入
while (k)
{
a[x--] = k%i;
k /= i;
}
showjinzhi(a, n,i); //显示进制信息,和清空数组
}
}
void main24354()
{
int a[N] = { 0 };
int num = 255;
zhuanhuan(a,num,N, 2, 16);
system("pause");
}