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

C# 計算五門課平均分:修復整數除法與字符串拼接 Bug

     編輯:程式設計綜合問答

原代碼兩大問題

  1. 字符串拼接括號全角:(i+1) 應為 (i+1)。
  2. 整數除法截斷:avg = sum / 5; 兩邊皆 int,結果截斷小數再賦給 double。

修正版

int score = 0;
int sum = 0;
double avg = 0.0;

Console.WriteLine("請輸入學生姓名:");
string name = Console.ReadLine();

for (int i = 0; i < 5; i++) {
    Console.Write("請輸入五門課中第" + (i+1) + "門課的成績:");
    score = int.Parse(Console.ReadLine());
    sum += score;
}

avg = sum * 1.0 / 5;   // 強制浮點運算
// 或 avg = (double)sum / 5;

Console.WriteLine(name + "的平均分是:" + avg);

知識點延伸

sum / 5sum / 5.0(double)sum / 5sum * 1.0 / 5
寫法結果類型說明
int整數除法,向零截斷
double字面量帶小數點觸發浮點運算
double顯式轉型,語意最清晰
double乘 1.0 隱式提升,常見技巧

防禦性編程建議

  • 用 int.TryParse 替代 int.Parse,避免非數字輸入拋出異常。
  • 輸入迴圈加入範圍校驗 if(score < 0 || score > 100) { i--; continue; }。
  • 格式化輸出 Console.WriteLine($"{name}的平均分是:{avg:F2}"); 保留兩位小數。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved