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

C語言基礎:預測身高代碼大括號混亂導致邏輯錯誤

     編輯:程式設計疑難解答

問題

代碼縮進混亂、大括號錯位,導致 `if-else` 匹配錯誤,`printf` 執行流程不符預期。

修正原則

  1. 大括號獨佔行:`if (...) {` 換行 `{`,`}` 獨佔行並對齊 `if`。
  2. 統一縮進:4 空格,IDE 自動格式化 (Ctrl+Shift+F / Option+Command+L)。
  3. 逐步調試:觀察變量值、執行路徑。

重構後骨架


int main() {
    char sex, sports, diet;
    double faHeight, moHeight, myHeight;
    // ... 輸入 ...
    
    if (sex == 'F') {
        double h1 = (sports=='Y') ? ((faHeight*0.54+moHeight)/2*0.02) : 0;
        double h2 = (diet=='Y') ? ((faHeight*0.54+moHeight)/2*0.015) : 0;
        myHeight = (faHeight+moHeight)*0.54 + h1 + h2;
    } else {
        double h1 = (sports=='Y') ? ((faHeight+moHeight)*0.54*0.02) : 0;
        double h2 = (diet=='Y') ? ((faHeight+moHeight)*0.54*0.015) : 0;
        myHeight = (faHeight*0.923+moHeight)/2 + h1 + h2;
    }
    printf("%f", myHeight);
    return 0;
}

關鍵建議

養成良好編碼習慣 (大括號風格、縮進、變量命名),利用編譯器警告 (`-Wall`)、靜態分析工具、單步調試,基礎錯誤迎刃而解。

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