在线编译器 C

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

2) 提示:注意检查循环中使用的变量是否已正确定义和初始化;思考当商为0时,循环条件是否会导致最后一位二进制数丢失。