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;
} 展开
#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;
} 展开
1个回答
展开全部
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)
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)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询