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

C 語言程序編譯無錯但無輸出:缺少循環遞增導致死循環

     編輯:程式設計綜合問答

問題代碼

while(i < n) {
    if(a[i] != 0)
        printf("%d\n", a[i]);
    // 缺少 i++
}

原因

i 永遠不變,滿足條件時無限打印同一元素(或無輸出若首元素為 0),程序掛起。

修正

while(i < n) {
    if(a[i] != 0)
        printf("%d\n", a[i]);
    i++; // 關鍵:每次循環遞增
}

舉一反三

  • 任何 while/for 循環必須確保循環變量向終止條件推進。
  • 調試技巧:加入打印循環變量、設置斷點觀察變化。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved