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

C 語言數組求平均分:整數除法導致精度丟失

     編輯:程式設計疑難解答

錯誤代碼

printf("avg %d,%d,%d", sum[0]/10, sum[1]/10, sum[2]/10);
printf("zongfen %d", (sum[0]/10+sum[1]/10+sum[2]/10)/3);

問題

C 語言**整數除法**截斷小數部分(如 `7/2 = 3`),導致平均分不準確。

修正:使用浮點類型

double avg_c = (double)sum[0] / 10;
double avg_m = (double)sum[1] / 10;
double avg_e = (double)sum[2] / 10;
printf("avg %.2f, %.2f, %.2f", avg_c, avg_m, avg_e);
printf("zongfen %.2f", (avg_c + avg_m + avg_e) / 3);

或定義 `sum` 為 `double` 累加,最後除以 `10.0`。

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