問題描述
牛牛最近學習了 C++ 入門課程,這門課程的總成績計算方法是:
總成績=作業成績 ×20% + 小測成績 ×30% + 期末考試成績 ×50%。
牛牛想知道,這門課程自己最終能得到多少分。
輸入
三個非負整數 A、B、C ,分別表示牛牛的作業成績、小測成績和期末考試成績。
相鄰兩個數之間用一個空格隔開,三項成績滿分都是 100 分。
輸出
一個整數,即牛牛這門課程的總成績,滿分也是 100 分。
樣例
輸入
100 100 80?
輸出
90
輸入
60 90 80
輸出
79
說明
【輸入輸出樣例 1 說明】
牛牛的作業成績是 100 分,小測成績是 100 分,期末考試成績是 80 分,總成績是 100×20% +100×30% +80×50% =20+30+40=90。
【輸入輸出樣例2說明】
牛牛的作業成績是 60 分,小測成績是 90 分,期末考試成績是 80 分,總成績是 60×20% +90×30% +80×50%= 79 。
【數據說明】
對于 30% 數據,A=B=0 。
對于另外 30% 的數據, A=B=100 。
對于 100% 的數據,0≤A , B ,C≤100 且 A、B、C 都是 10 的整數倍。
代碼1
#include <iostream>
using namespace std;int main() {int A, B, C;cin >> A >> B >> C;int totalScore = A * 20 / 100 + B * 30 / 100 + C * 50 / 100;cout << totalScore << endl;return 0;
}
該代碼首先讀入輸入的三個非負整數 A、B、C,分別表示牛牛的作業成績、小測成績和期末考試成績。
然后,我們使用公式 A * 20 / 100 + B * 30 / 100 + C * 50 / 100
計算總成績,并將結果賦值給變量 totalScore
。
最后,我們輸出 totalScore
,即牛牛這門課程的總成績。
這種方法使用整數除法來計算每個成績所占的比例,保證結果是一個整數。注意,我們使用的是整數除法(/
),所以計算每個成績所占的百分比時需要將分子乘以相應的比例,即20%,30%和50%。
代碼2
#include <iostream>
using namespace std;int main() {int A, B, C;cin >> A >> B >> C;double totalScore = A * 0.2 + B * 0.3 + C * 0.5;cout << static_cast<int>(totalScore + 0.5) << endl;return 0;
}
該代碼首先讀入輸入的三個非負整數 A、B、C,分別表示牛牛的作業成績、小測成績和期末考試成績。
然后,我們使用比例來計算每個成績所占的權重。作業成績占總成績的20%,小測成績占30%,期末考試成績占50%。我們將每個成績乘以相應的權重,并將結果相加,得到總成績。
最后,我們將總成績四舍五入到最接近的整數,并輸出。
這種方法使用浮點數來計算每個成績所占的權重,無需使用整數除法,結果也更加精確。注意,我們在將總成績四舍五入到整數時,使用了加0.5的小技巧,然后將結果轉換為整數類型輸出。