用递归将十进制转二进制的问题
我自己编写的
#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语言,也许问的很菜鸟,希望懂的人可以花的时间帮忙解答下,谢谢。