【基础练习】公务员面试
公务员面试
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; }