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

#include <stdio.h> int main() { int n,m; scanf("%d",&n); int a[1000]; int temp=n; int length=0; if(n=0){ printf("0"); } do{ m=temp%2; a[length]=m; length++; temp=temp/2; } while(temp!=0); for(int i=length-1;i>=0;i-- ){ printf("%d",a[i]); } return 0; }
1) 这段代码试图将输入的十进制整数转换为二进制表示并输出,但存在一个关键错误:条件判断中误用了赋值运算符`=`而不是相等比较运算符`==`。

2) 提示:
   - 检查第8行的`if(n=0)`,这里本意是比较`n`是否等于0,但错误地写成了赋值语句。
   - 当输入0时,程序会直接输出"0"并结束,但当前写法会导致逻辑错误。