输出 #1复制
6.00
题目分析
1.首先输入学生和评委数量,用for实现。
2.输入每个评委的打分,数组形式存储。
3.用sort 排序 找出最高和最低分 去掉
程序代码:(每行代码加注释是个好习惯,坚持)
#include
using namespace std;
int main()
{
int n,m;//定义
double MAX=INT_MIN;//注意首先把最大值设为INT_MIN,注意(在C/C++语言中,不能够直接使用-2147483648来代替最小负数,因为这不是一个数字,而是一个表达式。
cin>>n>>m;//输入学生数量和评委数量
for(int i=1;i<=n;i++)//循环输入学生for循环
{
double s[1000],sum=0;//临时数组记录本组内容
for(int j=1;j<=m;j++)//循环输入评委的for循环
{
cin>>s[j]; //输入每个成绩
sum+=s[j];//每次把成绩累计求和
}
sort(s+1,s+m+1);//调用sort进行排序
sum=sum-s[1]-s[m];//找到最大最小值,减去最大值和最小值
sum/=(m-2);//注意算平均分的时候要减去最大、最小值所以数量是m-2
if(sum>MAX) MAX=sum;//这里比较大小,sum大把sum赋给MAX
}
cout< return 0; //结束 } 运行结果 题目总结: 1.注意sort()的用法,Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题! Sort函数有三个参数: (1)第一个是要排序的数组的起始地址。 (2)第二个是结束的地址(最后一位要排序的地址) (3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。 2.注意INT_MIN在标准头文件limits.h中定义。 #include INT_MAX = 2^31-1=2147483647; INT_MIN= -2^31=-2147483648;在C/C++语言中,不能够直接使用-2147483648来代替最小负数,因为这不是一个数字,而是一个表达式。表达式的意思是对整数21473648取负,但是2147483648已经溢出了int的上限。3.保留小数点的写法归纳了三种: //第一种写法 cout< 贵在坚持,加油!
