您的位置:首页 > 其它

4歌星大奖赛

2012-12-04 18:55 225 查看
(1)方法1--非数组形式

/*
4.歌星大奖赛
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
*问题分析与算法设计
这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。
*/
#include<iostream>
using namespace std;
int main()
{
int i;  double integer,max,min,sum;
max=0; /*先假设当前的最大值max为0*/
min=100; /*先假设当前的最小值min为100*/
sum=0; /*将求累加和变量的初值置为0*/
for(i=1;i<=10;i++)
{
cout<<"Input number "<<i<<"=";
cin>>integer; /*输入评委的评分*/
sum+=integer; /*计算总分*/
if(integer>max)max=integer; /*通过比较筛选出其中的最高分*/
if(integer<min)min=integer; /*通过比较筛选出其中的最低分*/
}
cout<<"Canceled max score:"<<max<<"\nCanceled min score:"<<min<<endl;
cout<<"Average score:"<<(sum-max-min)/8<<endl; /*输出结果*/
}




 

(2)方法2--数组形式

/*
4.歌星大奖赛----数组形式
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
*问题分析与算法设计
这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。
使用数组形式将十个评委的成绩进行存储。
*/
#include<iostream>
using namespace std;
int main()
{
int i;double max,min,sum=0,scores[10];
for(i=0;i<10;i++)
{
cout<<"Input number "<<i+1<<"=";
cin>>scores[i]; /*输入第i个评委的评分*/
sum+=scores[i];
}

max=scores[0]; /*先假设当前的最大值max为scores[0]*/
min=scores[0]; /*先假设当前的最小值min为scores[0]*/

for(i=1;i<10;i++)
{
if(scores[i]>max)max=scores[i]; /*通过比较筛选出其中的最高分*/
if(scores[i]<min)min=scores[i]; /*通过比较筛选出其中的最低分*/
}
cout<<"Canceled max score:"<<max<<"\nCanceled min score:"<<min<<endl;
cout<<"Average score:"<<(sum-max-min)/8<<endl; /*输出结果*/
}


 (3)思考题

在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。

同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接返平均分)和最不公平(即与平均分的差距最大)的评委。

 

/*
4.思考题----歌星大奖赛
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。
同时对评委评分进行裁判,即在10个评委中找出最公平(即评分最接返平均分)和最不公平(即与平均分的差距最大)的评委。
注意在进行最接近平均分和最不接近平均分的比较中要利用绝对值比较
*/
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i,p,up;
double max,min,scores[10],sum=0,ave;
for(i=0;i<10;i++)
{
cout<<"Input number "<<i+1<<"=";
cin>>scores[i]; /*输入第i个评委的评分*/
sum+=scores[i];
}

max=scores[0]; /*先假设当前的最大值max为scores[0]*/
min=scores[0]; /*先假设当前的最小值min为scores[0]*/

for(i=1;i<10;i++)
{
if(scores[i]>max)max=scores[i]; /*通过比较筛选出其中的最高分*/
if(scores[i]<min)min=scores[i]; /*通过比较筛选出其中的最低分*/
}
ave=(sum-max-min)/8; //去掉最高分和最低分以后的平均值
cout<<"Canceled max score:"<<max<<"\nCanceled min score:"<<min<<endl;
cout<<"Average score:"<<ave<<endl; /*输出结果*/

p=0;  //p记录最公平评委下标
up=0; //up记录最不公平评委下标
for(i=1;i<10;i++)
{if(fabs(scores[i]-ave)<fabs(scores[p]-ave)) /*通过比较筛选出其中最公平评委下标*/
p=i;
if(fabs(scores[i]-ave)>fabs(scores[up]-ave))  /*通过比较筛选出其中最不公平评委下标*/
up=i;
}
cout<<"the most pair is the number "<<p+1<<endl;
cout<<"the most unpair is the number "<<up+1<<endl;
return  0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: