C语言的大神帮忙逐行解释一下这代码,谢谢~!要详细滴

#include<stdio.h>#include<stdlib.h>voidto_anyscale(unsignedlongn,intm){intr;r=n%m;if(... #include <stdio.h>
#include <stdlib.h>
void to_anyscale (unsigned long n,int m)
{
int r;
r = n % m;
if (n >= m)
to_anyscale(n/m,m);
if(r<10)
putchar('0'+r);
else
putchar(r-10+'A');
}
int main()
{
unsigned long src;
int scale;
printf("请输入需要转换的十进制数:\n");
while(scanf("%d",&src))
{
printf("请输入需要转换的进制数:\n");
scanf("%d",&scale);
to_anyscale(src,scale);
printf("若要继续,请输入另一个数,若要退出,请输入q或者Q:\n");
}
return 0;
}
展开
 我来答
阿Q298
推荐于2016-08-08 · 超过21用户采纳过TA的回答
知道答主
回答量:44
采纳率:100%
帮助的人:16.2万
展开全部
1、输入一个int变量src和一个unsigned long变量scale。比如20和8.然后转制函数to_anyscale()
2、取src对scale的余数,判断src是否是scale的整数倍。(标记1)如果是,进行递归,转制步骤3
3、传入的参数是2和8.此时r=2,判断执行putchar('0'+r).即向终端输出字符'2'。函数回到上层(标记1)
4、此时r=4,执行putchar('0'+4)。即向终端输出字符'4'。函数执行完毕。终端最终总输出字符串“24”.即20转换为8进制得到的是24.(2×8+4=20)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式