Online Compiler C

#include <stdio.h> unsighed int to_binary(int n){ if(n==0){ return 0; } return to_binary(n/2)*10+(n%2); }
这段代码定义了一个递归函数 `to_binary`,试图将一个十进制整数转换为二进制表示,但返回类型是 `unsigned int`,实际上返回的是看起来像二进制数的十进制数(例如输入5返回101)。函数逻辑是每次递归取 `n/2` 和 `n%2` 来构建结果。

代码中存在一个明显的拼写错误,导致编译失败。

- 第3行 `unsighed` 拼写错误,应该是 `unsigned`。这是关键字拼写问题,编译器会报错。
- 另外,函数返回类型是 `unsigned int`,但递归计算方式(乘以10)会导致结果在数值上不是真正的二进制位,而是十进制形式的二进制表示。例如输入5会得到101(一百零一),而不是真正的二进制数。如果目的是输出二进制字符串或位模式,这个实现方式有局限性。