#include<stdio.h>
#include
int main()
{
int i,n;
double a[1000],s,min,max,sum;
while(~scanf("%d",&n))
{
for(i=0;i
scanf("%lf",&a[i]);
}
sum=0;
min=a[0];
max=a[0];
for(i=0;i { if(min>=a[i]) min=a[i]; } for(i=0;i { if(max<=a[i]) max=a[i]; } for(i=0;i { sum+=a[i]; } s=(sum-min-max)/(n-2);//求平均数 printf("%.2lf\n",s); } return 0; } 主要特点如下: (1)简洁的语言 C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。 实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。 (2)具有结构化的控制语句 C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if...else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。 (3)丰富的数据类型 C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。
for(j=0; j<=n-i-1; j++) 改为for(j=i+1; j<=n-i-1; j++) 试试
去掉最高低分 取平均分
我这个是C++的代码 里面含有标准库。
#include
#include
#include
#include
#include
#include
using namespace std;
class Person
{
public:
Person(){};
Person(string name, double score)
{
this->m_Name = name;
this->m_Score = score;
}
string m_Name;
double m_Score; //平均分
};
void creatPerson(vector
{
int score = 0;
for (int i = 0; i < n; ++i)
{
string name1 = to_string(i+1); //int类型转化为string类型
string name2 = "号选手";
name1 += name2;
Person p(name1, score);
v.push_back(p);
}
}
void printVector(vector
{
for (vector
{
cout << it->m_Name << "最终平均分数为:" << it->m_Score << endl;
}
}
void printVector2(vector
{
for (vector
{
cout << it->m_Name << " ";
}
cout << endl;
}
void setVector(vector
{
for (vector
{
deque
cout << "已为" << it->m_Name <<"打了"<
{
int score = rand() % 41 + 60; // 打分区间60~100
d.push_back(score);
}
for (deque
{
cout << *dit << " ";
}
cout << endl;
sort(d.begin(), d.end());
d.pop_front();
d.pop_back();
/*for (deque
{
cout << *dit << " ";
}
cout << endl;*/
int sum = 0;
for (deque
{
sum += *dit;
}
//cout << "sum=" << sum << "数量" << d.size() << endl;
double avg = sum*1.0 / d.size();
it->m_Score = avg;
}
cout << endl;
}
void sortScore(vector
{
vector
Person t;
for (unsigned int i = 0; i < v.size(); ++i)
{
for (unsigned int j = 0; j < v.size() - i - 1; ++j)
{
if (it[j].m_Score>it[j + 1].m_Score) //比较分数
{
t = it[j]; //更换整体
it[j] = it[j + 1];
it[j + 1] = t;
}
}
}
}
int main(void)
{
cout << "软件说明:" << endl;
cout << "该软件为N个评委为M个选手打分,这样每一个选手就收到N次打分,去掉一个最低分和一个最高分,算出选手的平均分,并为这些选手按平均分从低到高排序。" << endl;
cout << endl;
cout << "请输入选手的个数N=";
int n;
while (true)
{
char c = cin.peek();
if (c > '0'&& c <= '9')
{
cin >> n;
cout << "你设置的选手人数为:" << n << endl;
break;
}
cin.clear(); //重置标志位
cin.sync(); //清空缓冲区
cout << "你输入不正确,请重新输入" << endl;
}
getchar();
cout << endl;
cout << "请输入评委的个数M=";
int m;
while (true)
{
char c = cin.peek();
if (c > '0'&& c <= '9')
{
cin >> m;
cout << "你设置的评委人数为:" << m << endl;
break;
}
cin.clear(); //重置标志位
cin.sync(); //清空缓冲区
cout << "你输入不正确,请重新输入" << endl;
}
cout << endl;
cout << "请这"<
srand((unsigned int)time(NULL)); //随机数种子
vector
creatPerson(v,n);
//printVector(v);
setVector(v,m);
cout << endl;
cout << "去掉一个最低分,去掉一个最高分:"<
cout << endl;
cout << "选手成绩由低到高排序如下:" << endl;
sortScore(v);
printVector2(v);
system("pause");
return 0;
}