【基础练习】公务员面试
公务员面试
http://www.nowcoder.com/questionTerminal/f3a134908d5b41869f14f58307008a97
题目描述
公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。
输入描述:
一行,输入7个整数(0~100),代表7个成绩,用空格分隔。
输出描述:
一行,输出去掉最高分和最低分的平均成绩,小数点后保留2位,每行输出后换行。
解题思路
1.可以通过对比找出最高成绩和最低成绩,然后将七个成绩相加再减去max和min求平均值。
2.通过sort将输入的数组进行排序,然后将中间五个相加后取平均值。
代码
1
#include<iostream>
#include<iomanip> //C++中浮点数保留小数点的有文件要有此文件
using namespace std;
int main()
{
int a[8];
int max=0;
int min=100;
for(int i=0;i<7;++i)
{
cin>>a[i];
if(max<a[i])
max=a[i];//max始终等于最大的那个
if(min>a[i])
min=a[i];//min始终等于最小的那个
}//这个for循环的目的是找出最大值max和最小值min
float result;
result=(float)((a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[0]-max-min)*1.0/5);//求出平均值
cout<<fixed<<setprecision(2)<<result<<endl;//设置要保留的小树点点数
}2
#include<iostream>
using namespace std;
int main(){
float a[8];
for(int i = 0 ; i < 7; i++) {
cin >> a[i];
}
sort(a, a + 7);//这里采用了排序的方法找到最大值和最小值
float sum = 0;
for(int i = 1; i < 6; i++) {//除去最大最小值后求平均值
sum += a[i];
}
cout << fixed << setprecision(2) << sum / 5 << endl;//设置要保留的小树点点数
return 0;
}
