Online Compiler C

#include <stdio.h> unsigned int to_binary(int n){ if(n==0){ return 0; } return(n%2)=10*to_binary(n/2); }
这段代码试图将一个十进制整数转换为二进制表示,但存在语法错误和逻辑问题。

- 第6行 `return(n%2)=10*to_binary(n/2);` 中使用了赋值运算符 `=`,但这里应该是一个表达式计算,而不是赋值。`n%2` 是一个值,不能作为左值被赋值。
- 递归调用的逻辑意图可能是将余数放在最低位,然后乘以10来左移,但写法不正确。正确的思路应该是 `(n % 2) + 10 * to_binary(n / 2)`,即用加法组合结果。