题目:
公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最分和一个最低分,输出每组的平均成绩。(注:本题有多组输入)
输入描述:
每一行,输入7个整数(0~100) ,代表7个成绩,用空格分隔。
输出描述:
每一行,输出去掉最高分和最低分的平均成绩,小数点后保留2位,每行输出后换行。
代码实现:
#define _CRT_SECURE_NO_WARNINGS 1
#define NUM_PEO 7//考官数量
#include <stdio.h>
int main()
{
int score[NUM_PEO] = { 0 };
double average = 0;
int sum = 0;
int i = 0;
int max = 0;
int min = 0;
while (scanf("%d", score) == 1)//第一个数,存放成功,进入循环
{
//假设最低分、最高分较为第一个分数
//这样后面一次次对比,就可以找出真正的最低分、最高分
min = score[0];
max = score[0];
sum = 0;//每次进入循环, 总分清零
//输入剩余分数,并找出最高、最低分
for (i = 1; i < NUM_PEO; i++)
{
scanf("%d", &score[i]);
min = min > score[i] ? score[i] : min;
max = max > score[i] ? max : score[i];
}
//处理数据:计算去出2个极端分数后的平均分
for (i = 0; i < NUM_PEO; i++)
{
sum += score[i];
}
average = (double)(sum - max - min) / (NUM_PEO - 2);
//输出结果
printf("%.2lf\n", average);
}
return 0;
}