在线编译器 C

#include <stdio.h> unsigned int to_binary(int n) { // if ( n < 2) { printf("%u ", n); return 0; } // to_binary(n/2); printf("%u ", n % 2); } int main() { to_binary(5); return 0; }
这段代码试图将一个整数转换为二进制表示并打印出来。它使用了递归方法,但存在一些问题。

- 函数 `to_binary` 被声明为返回 `unsigned int`,但在递归调用后没有返回值,这会导致未定义行为。递归函数需要确保所有路径都有明确的返回值。
- 递归逻辑本身是正确的:先递归处理高位,再打印当前位的值。但缺少返回值可能让编译器产生警告或错误。