Онлайн компилятор C

#include <stdio.h> unsigned int to_binary(int n){ if (n < 2){ return n; } return to_binary(n / 2); printf ("%d",n % 2); } int main() { printf ("%d",int to_binary(6)); return 0; }
这段代码试图将一个十进制整数转换为二进制表示并输出,但存在几个问题。

首先,`to_binary` 函数在递归调用后立即执行了 `printf`,但 `return` 语句已经提前结束了函数,所以 `printf` 永远不会被执行。其次,`main` 函数中调用 `to_binary` 的语法有误。

- 递归函数中,`return` 语句会立即退出函数,因此 `printf` 放在 `return` 之后是无效的。你需要考虑如何让递归在返回过程中逐步输出每一位数字。
- `main` 函数中 `printf ("%d",int to_binary(6));` 的写法不正确。函数调用时不需要在括号内写类型 `int`,直接写 `to_binary(6)` 即可。