#include 缺少文件名 → #include 。scanf("%d", shu) 缺少取地址符 → scanf("%d", &shu)。for(i=0;i 循環條件不完整 → for(i=0; shu>0; i++) 或 while(shu>0)。int a[32]={0}。
#include
int main() {
int shu, i = 0;
int a[32] = {0};
printf("輸入一個十進制整數: ");
if (scanf("%d", &shu) != 1) return 1;
if (shu == 0) { printf("0\n"); return 0; }
while (shu > 0) {
a[i++] = shu % 2;
shu /= 2;
}
for (int j = i - 1; j >= 0; j--)
printf("%d", a[j]);
printf("\n");
return 0;
}
若需支持負數,可轉換為無符號 unsigned int u = (unsigned int)shu 後同樣處理,輸出為補碼形式。