/*在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分
为:去掉一个最高分和一个最低分后其余8个分数的平均值。
题目条件不变,但考虑同时对评委评分进行裁判,即在10个评委中找出最公平(即评分
最接返平均分)和最不公平(即与平均分的差距最大)的评委,程序应该怎样实现?
请编写一个程序实现。
算法分析与设计:
定义数组存放裁判的打分,遍历数组得到最高分与最低分,
去掉最高分与最低分得到选手的平均分。
设计了良好的的人机交互界面*/

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
 double grade[10]={0};
 double random=0,max=0,min=0,avg=0,sum=0;  
 int i,index_max=0,index_min=0,index_min_dis=0,index_max_dis=0;  //记录下标
 double dis_max=0,dis_min=0;                       //记录与平均分相比得到的最大差距及最小差距
    int index_max_dis_all[10]={0},index_min_dis_all[10]={0};
                                 //记录与平均分相比得到最大差距及最小差距的分数对应的所有下标
 //输入10位裁判的打分
 for(i=0;i<=9;i++)
 {
  cout<<"请输入第"<<i+1<<"位裁判的打分:";
  cin>>random;
  while(random>100||random<0)               //当输入的分数不在0~100之间时,重新输入
  {
   cout<<"对不起,您的输入有误,请重新输入!"<<endl;
   cout<<"请输入第"<<i+1<<"位裁判的打分:";
   cin>>random;
   if(random<=100&&random>=0)
    break;
  }   
  grade[i]=random;
 }

//遍历数组找到最高分与最低分
 max=min=grade[0];                 //对max,min赋值。应该设一个与数组元素相关的值;
                                   //如使用定义时的值0,由于grade[i]>=0,min将不会改变。
 index_max=index_min=0;
 for(i=1;i<=9;i++)
 {
  if(max<grade[i])
  {
   max=grade[i];
   index_max=i;
  }
  else
   if(min>grade[i])
   {
    min=grade[i];
    index_min=i;
   }
 }

//计算去掉最高分与最低分后的平均得分
 for(i=0;i<=9;i++)
  if(i!=index_max&&i!=index_min)
   sum+=grade[i];
  avg=sum/8;

//遍历数组计算出与平均分相差最大及最小的分数
 dis_max=dis_min=fabs(grade[0]-avg);           //对分数差距取绝对值,得到相对量
 index_max_dis=index_min_dis=0;
 for(i=1;i<=9;i++)
 {
  if(dis_max<fabs(grade[i]-avg))
  {
   dis_max=fabs(grade[i]-avg);
   index_max_dis=i;
  }
  else
   if(dis_min>fabs(grade[i]-avg))
   {
    dis_min=fabs(grade[i]-avg);
    index_min_dis=i;
   }
 }

//遍历数组,找出与平均分相比得到最大差距及最小差距的分数对应的所有下标
 int i_max=0,i_min=0;
 for(i=0;i<=9;i++)
 {
  if(grade[i]==grade[index_max_dis])
  {
   index_max_dis_all[i_max]=i;
   i_max++;
  }
  if(grade[i]==grade[index_min_dis])
  {
   index_min_dis_all[i_min]=i;
   i_min++;
  }
 }

//输出结果
  cout<<"最高分为:"<<grade[index_max]<<endl;
  cout<<"最低分为:"<<grade[index_min]<<endl;
//  cout<<"最公正的裁判为第"<<index_min_dis+1<<"位裁判"<<endl;
//  cout<<"最不公正的裁判为第"<<index_max_dis+1<<"位裁判"<<endl;

i_max=0,i_min=0;
  cout<<"最公正的裁判为:";
  //数组index_min_dis_all[10],index_max_dis_all[10]初始化为0,为了满足下标为0的元素为
  //距离最大或最小的情况,又因为每个数组中至少有一个元素,故用do...while...循环,至少
  //输出每个数组中的第一个元素
  do                    
  {
   cout<<index_min_dis_all[i_min]+1<<",";
   i_min++;
  }while(index_min_dis_all[i_min]!=0);
  cout<<endl;

cout<<"最不公正的裁判为:";
  do
  {
   cout<<index_max_dis_all[i_max]+1<<",";
   i_max++;
  }while(index_max_dis_all[i_max]!=0);
  cout<<endl<<endl;
   
  cout<<"选手最后得分为:"<<avg<<endl;
 return 0;
}

歌星大奖赛,评分系统相关推荐

  1. c语言程序设计歌手大奖赛,C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委...

    导航:网站首页 > C语言二维数组怎么做:设计青年歌手参加歌曲大奖赛计分系统: 共...,怎样用c语言程序设计? 青年歌手参加歌曲大奖赛,有10个评委 C语言二维数组怎么做:设计青年歌手参加歌曲 ...

  2. c语言 在歌星大奖赛,C语言 歌星大奖赛为参赛的选手打分

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

  3. c语言10个选手10个评委,C语言歌星大奖赛为参赛的选手打分.doc

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

  4. C++实现歌星大奖赛

    C++实现歌星大奖赛 一 .需求分析: (1)在歌星大奖赛中,每位歌手演唱完,有10个评委为参赛的选手打分,分数为1~100分.选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值.歌手的 ...

  5. python趣味编程:歌星大奖赛

    题目:歌星大奖赛 内容:在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1到100分.选 手最后得分为去掉一个最高分和一个最低分后,其余8个分数的平均值. 问题分析和算法设计: 问题算法比较简单, ...

  6. Node项目之评分系统(一)- 基本介绍

    最近半个月,一直在学习Node的Web开发,使用的Web的框架为express,模版引擎最后还是选用了ejs,相对于jade不需要学习新的语法规则,并且方便粘贴一些HTML代码片段,减轻了前端设计的好 ...

  7. apache评分表的意义_APACHE评分系统及评分表

    <APACHE评分系统及评分表>由会员分享,可在线阅读,更多相关<APACHE评分系统及评分表(2页珍藏版)>请在人人文库网上搜索. 1.APACHE评分系统急性生理学及慢性健 ...

  8. angular 指令渲染_Angularjs渲染的 using 指令的星级评分系统示例

    本文介绍Angularjs渲染的 using 指令的星级评分系统示例,分享给大家,具体如下: 我试图创建静态使用 angularjs/离子成效甚微的星级评分系统.但目前什么都不输出到屏幕上...... ...

  9. 业界 | 裁判太嚣张?平昌之后,奥运会评分系统将引入AI技术

    平昌奥运会期间,在人类选手角逐较量的同时,八只机器人队伍也获得了参赛资格.2月12日,首届人形机器人滑雪锦标赛在威里山公园滑雪场开幕,这些装备传感器的8台机器人顺利完成比赛,给世界观众留下了深刻的印象 ...

  10. 评分系统 java_C自动评分系统

    我无法按照规范完成作业 . 这是分配方案: 大学迫切需要一个自动测试评分系统 . 使用C,为大学写一个评分系统,并对至少五名学生的测试进行评分 . 要创建评分系统,请按照以下步骤操作:首先询问测试中的 ...

最新文章

  1. JAVA SE学习day_08:TCP通信、多线程(并联)
  2. struts2教程--实现文件上传下载
  3. 真正掌握vuex的使用方法(一)
  4. Linq常用List操作总结,ForEach、分页、交并集、去重、SelectMany等
  5. android app启动过程
  6. sqlplus(数据泵)导入导出dmp实践使用
  7. Using dispatch_async
  8. 【英语学习】【Daily English】U06 Shopping L04 I like everything aboutit but the price.
  9. JUnit4 中@AfterClass @BeforeClass @after @before的区别
  10. [C] strncpy 函数
  11. 10 行代码解决漏斗转换计算之性能优化
  12. 交互式编程神器jupyter notebook环境搭建【不需要虚拟环境就能实现python2版本和python3版本自由切换】
  13. 剑指offer、二叉搜索树的第K个结点(python)
  14. 结合原理与代码理解BiLSTM-CRF模型(pytorch)
  15. swiper网格布局
  16. React Native 实践之携程 Moles 框架
  17. Google退出Android有影响吗?
  18. Flink on Yarn的两种模式及HA
  19. 【玩转ESP32】17、PWM调光
  20. 将物流行业送往智能时代,菜鸟网络的配送车已经上路了

热门文章

  1. 磊科nw336 linux驱动下载,磊科Netcore NW336驱动
  2. 安兔兔android手机性能排行榜,安兔兔2018年12月Android手机性能排行榜
  3. JS方法篇:vue.js判断滚动条触底
  4. 小程序开发之组件的使用
  5. TOEIC考试时间分配详解
  6. 洛谷P1244青蛙过河题解
  7. Excel 金额大写
  8. win7 64位下如何安装配置mysql-5.7.17-winx64
  9. 曝光一个骗子,大家小心一点,骗子QQ是493169239和707661812,842086828
  10. 香港科技大学计算机博导陈,香港科技大学计算机科学及工程系丁存生教授访问我校...