本文首發於微信公眾號:"算法與編程之美",歡迎關注,及時了解更多此系列文章。
本題要求編寫程序,計算學生們的平均成績,並統計及格(成績不低於60分)的人數。題目保證輸入與輸出均在整型範圍內。
輸入:輸入在第一行中給出非負整數N,即學生人數。第二行給出N個非負整數,即這N位學生的成績,其間以空格分隔。
輸出:
average = 成績均值
count = 及格人數其中平均值精確到小數點後一位。
輸入樣例:
5
77 54 92 73 60
輸出樣例:
average =71.2
count = 4
首先運用到map函數完成對學生成績進行輸入並且用空格隔開,對所有學生的成績進行求和,判斷及格條件,採用if函數進行判斷,如若大於60分,則在人數上加一,然後求其平均成績並且保留一位小數,最後按照題目要求執行出平均成績與及格人數。
n=int(input("輸入學生個數:"))#輸入人數
grade = (map(eval, input('輸入學生分數並用空格隔開:').split()))#輸入各個同學的分數
people= 0
sum=0
for i in grade:#在grade範圍內的數字
sum+=i
if i >= 60:#及格分數
people += 1#每進行一次人數加一
average="%.1f"%(sum/n)#求學生的平均分數並且保留一位小數
print('average=' ,average)#輸出平均成績
print('count=' , people)#輸出及格人數
運行結果:
在完成這個題目時,雖然難度並不是很難,需要先理清邏輯結構,在先運算出什麼時,要考慮到下一步做什麼,運用了for循環,對總分進行運算,採用if函數對及格的人數進行限定,本題應注意格式的輸出,下一次,會慢慢挑戰藍橋杯的題目並且對其研究,擴展對編程的學習。
實習編輯:衡輝
作者:彭誠、嚴潔、張淑娟
稿件來源:深度學習與文旅應用實驗室(DLETA)