将十进制数转换成任意进制数。
思路分析:
先举一个具体的例子:十进制转换为二进制数
1 定义一个数组a[100],先归0,再存放运算过程中的余数
2 定义变量m, 先存放键盘上输入的十进制数
3 定义变量R 表示几进制数,循环变量i j
十进制转换成二进制,
就是m不断地除以2,写下每一次除完的余数,能整除就是0,不能就是1。
最后把余数从最后面往前输出,就是二进制数
1 while循环,表示十进制除2取余数的过程,
2 for循环,把余数从后往前输入,输出数组a[i],得到二进制数
【运行结果】
【程序代码】
#include <stdio.h>
int main(void)
{
int a[100] = {0}; //数组初始化,数组元素全部归零
int m = 0; //存储要转换成其他进制的数
int R = 0; // 转换成几进制
int i = 0;
int j = 0;
printf("请输入一个十进制数:");
scanf("%d", &m);
printf("您想将输入的十进制数转换成几进制:");
scanf("%d", &R);
//十进制转二进制:除2取余
while(m)
{
a[i] = m%R; //除2得到的余数,放到数组a中
m /=R; //得到下一次除2取余的数,直到m=0退出循环结束
i++;
}
//因为除2取余,最后要把结果倒过来才是二进制数,所以从后往前输出。
//又因为i最后多加了一次,所以从i-1开始。
for(j=i-1; j>=0; j--)
{
printf("%d", a[j]);
}
printf("\n");
return 0;
}