PAT-BASIC1077——互評成績計算
阿新 • • 發佈:2018-12-18
題目描述:
知識點:計數
思路:按題述程式設計即可
時間複雜度是O(n),其中n為分數的總個數。空間複雜度是O(1)。
C++程式碼:
#include<iostream> using namespace std; int main(){ int N, M; cin >> N >> M; int teacherScore; int studentScore; int studentMaxScore; int studentMinScore; int studentTotalScore; int countValid; int tempStudentScore; double score; int finalScore; for(int i = 0; i < N; i++){ studentMaxScore = 0; studentMinScore = M; studentTotalScore = 0; countValid = 0; cin >> teacherScore; for(int j = 0; j < N - 1; j++){ cin >> tempStudentScore; if(tempStudentScore >= 0 && tempStudentScore <= M){ if(studentMaxScore < tempStudentScore){ studentMaxScore = tempStudentScore; } if(studentMinScore > tempStudentScore){ studentMinScore = tempStudentScore; } countValid++; studentTotalScore += tempStudentScore; } } studentScore = studentTotalScore - studentMaxScore - studentMinScore; score = (teacherScore + studentScore * 1.0 / (countValid - 2)) * 0.5; finalScore = (int) score; if(score - finalScore >= 0.5){ finalScore++; } printf("%d\n", finalScore); } }
C++解題報告: