天天看點

【Python】2020年藍橋杯省賽真題——成績統計

資源限制

  時間限制:1.0s 記憶體限制:256.0MB

問題描述

  小藍給學生們組織了一場考試,卷面總分為 100 分,每個學生的得分都是一個 0 到 100 的整數。

  如果得分至少是 60 分,則稱為及格。如果得分至少為 85 分,則稱為優秀。

  請計算及格率和優秀率,用百分數表示,百分号前的部分四舍五入保留整數。

輸入格式

  輸入的第一行包含一個整數 n,表示考試人數。

  接下來 n 行,每行包含一個 0 至 100 的整數,表示一個學生的得分。

輸出格式

  輸出兩行,每行一個百分數,分别表示及格率和優秀率。百分号前的部分四舍五入保留整數。

樣例輸入
7
80
92
56
74
88
100
0
           
樣例輸出
71%
43%
           
評測用例規模與約定

  對于50%的評測用例,1≤n≤100。

  對于所有評測用例,1≤n≤10000。

代碼實作
n = int(input())
passed, excellent = 0, 0

for i in range(n):
    score = int(input())
    if score >= 60:
        passed += 1
    if score >= 85:
        excellent += 1

pass_rate = str(int(passed / n * 100 + 0.5)) + "%"
excellent_rate = str(int(excellent / n * 100 + 0.5)) + "%"

print(pass_rate)
print(excellent_rate)

           

  需要注意的是,在Python3中,round()函數的四舍五入實際上是“四舍六入五平分”,是以推薦采用int(a + 0.5)的方式來對百分号前的數字進行四舍五入的取整操作,避免出現問題。