c++去掉最大值和最小值求平均数

定义一个含 20 个元素的一维整型数组,从键盘上输入 20 个元素,求去掉最大值和最小值以后那些元素的平均值.
注:最大、最小元素值可能不止一个,都应该去掉.

#include<iostream>
using namespace std;

int main()
{
int a[20];
int sum=0;//20个数的和
int num=20;//数字总个数
for(int i=0;i<20;i++)//第一个循环储存数字
{
int temp;
cin>>temp;
a[i]=temp;
sum+=temp;
}
int max=a[0];
int min=a[0];

for(int i=0;i<20;i++)//第二个循环找到最大最小值
{
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}

for(int i=0;i<20;i++)//第三个循环剔除最大最小值,计算剩余的和,个数
{
if(a[i]==max||a[i]==min)
{
sum-=a[i];
num--;
}
}
cout<<double(sum)/num;
}

写的稍微多了一点,没有优化算法,不过应该可解决你的问题
温馨提示:答案为网友推荐,仅供参考
相似回答