用递归将十进制转二进制的问题

feng2222 feng2222 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我自己编写的
#include "stdio.h"
int f(int n)
{int r;
if (n>0) r=n%2;
return r;}
main()
{ int n;
int a;
scanf("%d",&n);
while(n!=0)
{a=f(n);
n=n/2;
printf("%d",a);}
getch();
}
答案
#include "stdio.h"
fun(int n)
{
int i,k;
while(1)
{
i=n%2;
k=n/2;
if(k>0) fun(k);
{
printf("%d",i);
break ;
}
}
}
void main()
{
int m;
printf("请输入十进制数m的值:");
scanf("%d",&m);
fun(m);
printf("\n");
getch();
}
例如我自己编的输入123,就输出1101111;
答案那个就输出1111011;


我想问下自己编的和答案的区别在哪里,为什么其输出的是倒过来的。

还有答案中 {
printf("%d",i);
break ;
}
是实现什么功能?

初学c语言,也许问的很菜鸟,希望懂的人可以花的时间帮忙解答下,谢谢。
...全文
评论 21
收藏 已收藏
分享
返回顶部
feng2222
C语言 70,039 成员 243,237 内容