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

C 語言基礎:計算百分比的正確姿勢

     編輯:程式設計疑難解答

題目回顧

輸入兩個整數 a、b,輸出 a/b*100 的整數百分比(如 1 3 → 33%)。

關鍵點:整數除法截斷陷阱

直接寫 a / b * 100 會先做整數除法,結果永遠為 0(當 a < b 時)。必須先轉浮點數再乘 100,最後取整。

標準寫法

#include <stdio.h>

int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    // 強制轉型為 float,避免整數除法截斷
    int percent = (int)((float)a / (float)b * 100);
    printf("%d%%\n", percent);
    return 0;
}

進階:四捨五入而非截斷

若題目要求四捨五入(如 2/3 → 67%),可加 0.5 再取整:

int percent = (int)((float)a / b * 100 + 0.5);

常見錯誤對比

寫法a=1,b=3 結果問題
a / b * 1000整數除法先執行,結果為 0
(a * 100) / b33可能溢出(a 較大時),但小數據可用
(int)((float)a / b * 100)33✅ 正確,通用且安全

總結

C 語言整數除法向零截斷,涉及比例計算時務必先轉 float/double 再乘系數,最後按需取整或四捨五入。養成「先浮點,後整數」的習慣,能避開 90% 的除法坑。

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