题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805262303477760
思路:
设置两个int变量mi,ma存储最小最大值。由于要去掉不合理的数据设置变量int型cn,计算合理数据的个数。设置int变量re求合理数据总和。求均值时,只需将cn-2,将re-mi -ma即可。注意答案是要四舍五入,保留到整数。
#include <iostream>
using namespace std;
void solve()
{
int n, m;
cin>>n>>m;
for(int i = 0; i < n; i++)
{
int g1;
cin>>g1;
int mi = 100, ma = -1;
int cn = 0, re = 0;
for(int j = 1; j < n; j++)
{
int x;
cin>>x;
if(x >= 0 && x <= m)
{
re += x;
cn++;
if(mi > x)
mi = x;
if(ma < x)
ma = x;
}
}
re -= ma;
re -= mi;
cn -= 2;
double g2 = re * 1.0 / cn;
g2 = (g1 + g2) / 2 + 0.5;
re = g2;
cout<<re<<endl;
}
return;
}
int main()
{
solve();
return 0;
}
这道题总体较简单,应该属于20分简单的那一类,但题目本身有一定的bug,它并没有说明学生输入的分数是什么类型的,是否含有乱码等。我的代码默认了学生输入为int型,但所有的测试点都过了。
2018年9月14日 16:20:37