#include<stdio.h>
void to_binary(unsigned long n);
int main(void)
{
unsigned long number;
printf("Enter an integer (q to quit):\n");
while (scanf("%lu", &number) == 1)
{
printf("Binary equivalent: ");
to_binary(number);
putchar('\n');
printf("Enter an integer (q to quit):\n");
}
printf("Done.\n");
return 0;
}
void to_binary(unsigned long n)
{
int r;
r = n % 2;
if (n >= 2)
to_binary(n / 2);
putchar(r == 0 ? '0' : '1');
return;
}
这个程序我是真看不懂,为什么自定义的函数void to_binary(unsigned long n),运行是如何自动递归循环的,这也没有循环语句啊。比如,我输入9,输出是1001.可我看代码,应该就只输出一个1,为什么会循环输出后面几位。
还有递归一定要自定义分离出一个函数么,,如果把下面自定义的函数去掉,直接在int main()函数里表述,改如何写这个程序啊。
有没有前辈指点一下,,自学小菜鸟求教!!!