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

C語言統計學生成績等級:變量未初始化導致結果錯誤

     編輯:程式設計疑難解答

題目回顧

輸入正整數 n,再輸入 n 個百分制成績,統計 A(90-100)、B(80-89)、C(70-79)、D(60-69)、E(0-59) 五個等級的人數。

常見錯誤:計數器未初始化

int a, b, c, d, e;  // 只有聲明,無初始化
// ...
if (score >= 90) a++;
// ...

局部變量未初始化時值為隨機垃圾值,a++ 導致統計結果完全錯誤。

修正方法

在聲明處或使用前顯式初始化為 0:

int a = 0, b = 0, c = 0, d = 0, e = 0;
// 或分開寫
a = b = c = d = e = 0;

完整參考代碼

#include <stdio.h>

int main() {
    int n, score;
    int a = 0, b = 0, c = 0, d = 0, e = 0;

    printf("輸入學生人數: ");
    scanf("%d", &n);

    for (int i = 0; i < n; i++) {
        printf("輸入第 %d 位學生成績: ", i + 1);
        scanf("%d", &score);

        if (score >= 90) a++;
        else if (score >= 80) b++;
        else if (score >= 70) c++;
        else if (score >= 60) d++;
        else e++;
    }

    printf("A: %d\nB: %d\nC: %d\nD: %d\nE: %d\n", a, b, c, d, e);
    return 0;
}

避坑指南

  • 所有計數器、累加器、標誌變量必須顯式初始化,不要依賴編譯器默認值(全局/靜態變量才默認 0)。
  • 善用 else if 鏈,避免多重 if 重複判斷,提高效率。
  • 輸入驗證:檢查 score 是否在 0-100 範圍內。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved