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

#include <stdio.h> int main() { int n,m,length=0; int a[1000]; scanf("%d",&n); while(n/2!=0){ m=n%2; a[length]=m; length++; n=n/2; } for(int i=length;i>0;i--){ printf("%d",a[i]); } return 0; }
1) 这段代码试图将输入的十进制整数转换为二进制表示并输出,但存在逻辑错误,导致输出结果不正确。

2) 提示:注意循环结束后,最高位的二进制位没有被存入数组;检查for循环中数组下标的起始值是否正确。