我的PAT-BASIC代码仓:https://github.com/617076674/PAT-BASIC
原题链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805262303477760
题目描述:
知识点:计数
思路:按题述编程即可
时间复杂度是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++解题报告: