![](https://i-blog.csdnimg.cn/blog_migrate/f5ff9de60ab68ccb8a4fb3d9d7efb9ac.png)
1、问题描述
编写程序,将十进制数N转换为d进制数。
2、编码实现
#include <stdio.h>
#这个程序不是直接计算出要转化的结果,而是从高位到低位一位一位打印出来的
#定义一个函数方便递归
void tran(int num,int m) {
int i, j = 0, x = 0, y = 0;
#判断输入的num是否为零,是零则返回
if (num == 0) return;
#输入的num据不为零则将其除m然后再次调用tran函数
tran(num / m, m);
#等到上面的tran返回后再执行下面的程序
i = num % m;
#判断余数是否为小于10的数,因为大于等于10的数需要用字母来表示
if (i < 10) { printf("%d", i); }
else { printf("%c",'A'+i-10); }
}
int main() {
int m, i, j=0, x=0, num,y=0;
printf("要转化的进制:");
scanf_s("%d", &m);
printf("要转化的数字:");
scanf_s("%d", &num);
tran(num,m);
}
3.运行与测试
![](https://i-blog.csdnimg.cn/blog_migrate/7d66b3555fac4822ad32394825f9400b.png)