本文主要是介绍PAT 1077 互评成绩计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:请点击
注解:题目要求四舍五入为整数,起初用%.0f,但这样若为36.5输出36(实际上应是37),如下图所示。所以手动四舍五入,即判断浮点型的数与强转int型后的差值是否大于等于0.5,若是则应当在强转后的数字上+1输出。
AC代码
#include<iostream>
using namespace std;
int main(){int N,M;cin>>N>>M;for(int i=0;i<N;i++){int teaScore,num=0,max=-1,min=999,sum=0;//num合法评分学生的人数 cin>>teaScore;//教师给出的评分for(int j=1;j<N;j++){int stuScore;cin>>stuScore;if(stuScore>=0&&stuScore<=M){//在合法区间内 num++;sum+=stuScore;if(stuScore>max) max=stuScore;if(stuScore<min) min=stuScore;}} float avg=(sum-max-min)*1.0/(num-2);if((teaScore+avg)/2-(int)((teaScore+avg)/2)>=0.5)//四舍五入cout<<(int)((teaScore+avg)*1.0/2)+1<<endl;else cout<<(int)((teaScore+avg)*1.0/2)<<endl;} return 0;
}
这篇关于PAT 1077 互评成绩计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!