首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言十進制轉二進制數組存儲錯誤修正:scanf 缺 &、循環條件寫法、頭文件缺失

     編輯:程式設計綜合問答

原代碼錯誤

  1. 頭文件 #include 缺少文件名 → #include 。
  2. scanf("%d", shu) 缺少取地址符 → scanf("%d", &shu)。
  3. for(i=0;i 循環條件不完整 → for(i=0; shu>0; i++) 或 while(shu>0)。
  4. 數組大小 16 足夠 32 位整數(最多 32 位),但需初始化 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 後同樣處理,輸出為補碼形式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved