可以构造一个类,
类中有一个数组存放所有输入的分数
int count,first,last,aver分别存放分数的个数,最高分,最低分,平均分
再定义一个读取函数,用于从键盘读取数据
一个计算最高分的函数
一个计算最低分的函数
一个计算平均分的函数
可以参考下面的代码:
#include<iostream>
using namespace std;
class mark
{
public:
mark();
void read();
void print();
int getFirst();
int getLast();
double getAver()const;
void average();
private:
int count;
int *array;
int first;
int last;
double aver;
};
mark::mark():count(0),first(0),last(0),aver(0){}
void mark::read()
{
cout<<"请输入分数的个数:";
cin>>count;
array = new int[count];
for(int i=0;i<count;i++)
cin>>array[i];
}
void mark::print()
{
cout<<"最高分为: "<<getFirst()<<'\n';
cout<<"最低分为: "<<getLast()<<'\n';
cout<<"平均分为: "<<getAver()<<'\n';
}
int mark::getFirst()
{
int max=0;
for(int i=0;i<count;i++)
if(array[i]>max)
max=array[i];
first = max;
return first;
}
int mark::getLast()
{
int min=10000;
for(int i=0;i<count;i++)
if(array[i]<min)
min =array[i];
last = min;
return last;
}
double mark::getAver()const
{
return aver;
}
void mark::average()
{
int sum =0;
for(int i=0;i<count;i++)
sum+=array[i];
sum= sum - getFirst() - getLast();
aver = sum *1.0/(count-2);
}
main(void)
{
mark m;
m.read();
m.average();
m.print();
}