代码:
[root@rhel6164 c_language]$ cat test.c
#include <stdio.h>
void to_binary(int);
int main(void)
{
int input_number;
printf("Please input one integer: ");
scanf("%d", &input_number);
to_binary(input_number);
printf("\n");
return 0;
}
void to_binary(int n)
{
int r;
r = n % 2;
if ( n >= 2 )
to_binary(n/2);
//putchar('0' + r); //先计算'0'和r的值,然后转换为相应的ASCII打印出字符
putchar(r?'1':'0'); //三元运算符,如果r为1,就打印字符'1',如果r为0,就打印字符'0'
}
编译&运行:
[root@rhel6164 c_language]$ gcc ./test.c
[root@rhel6164 c_language]$ ./a.out
Please input one integer: 10
1010
这里简单分析一下递归函数的执行过程,我就用输入的数字n为4来说明,当第一次调用to_binary函数的时候,r为0,判断n的值大于或等于2&#