C Primer Plus (第6版)中文版 P224中程序清单9.8 binary.c程序,在运用递归实现二进制打印整数时,有一个错误
使用了未初始化的局部变量“r”,麻烦各位,怎么修改才不会有错误
#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_s("%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;
if (n >= 2)
to_binary(n / 2);
putchar(r == 0 ? '0' : '1');
return;
}