|
|
51CTO旗下网站
|
|
移动端

2.4 赛场统分

《Java趣味编程100例》第2章身边的数学问题,本章将让你学会如何通过程序设计来解决一些有趣的数学问题。本节为大家介绍赛场统分。

作者:衡友跃来源:清华大学出版社|2013-03-07 10:41

2.4  赛场统分

1.问题描述

在编程竞赛中,有10个评委为参赛的选手打分,分数为0~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。

2.问题分析

这是一个典型的求最大值、最小值问题,为方便数据处理,我们可以把10个评委的打分放到数组里,然后通过循环打擂的原则,把最大值、最小值求出来,同时累加求和,这样一次循环就能实现。

(1)确定程序框架

通过前面的问题描述,我们可以首先循环输入10个分数,然后求出最大值、最小值,最后累加求和,算出平均分。程序的框架如下:

  1. public class ch2_4   
  2. {  
  3.     public static void main(String[] args)   
  4.     {  
  5.         ...  
  6.         //循环录入10个人的分数  
  7.         //通过打擂求出最大值、最小值  
  8.         //累加求和  
  9.         //输出结果  
  10.     }  
  11. }  

(2)循环录入分数

通过一个循环语句,很容易实现,代码如下:

  1. for(i=0;i<10;i++)  
  2. {  
  3.     System.out.print("请输入第"+(i+1)+"分数:");  
  4.     Scanner input=new Scanner(System.in);  
  5.     X[i]=input.nextInt();  
  6. }  

(3)打擂求最大值、最小值

假设评委打分都是整数,我们可以先用两个变量max、min分别存放最低分0分,最高分100,通过一个循环语句,实现打擂,代码如下:

  1. for(i=0;i<10;i++)  
  2. {  
  3.     if(x>max) max=x[i];  
  4.     if(x<minmin=x[i];  
  5. }  

(4)累加求和

通过一个循环语句,实现累加求和,代码如下:

  1. for(i=0;i<10;i++)  
  2. {  
  3.     sumsum=sum+x[i]  
  4. }  

(5)完整程序

现在我们就需要把刚才的程序进行组合,构成我们的完整程序:

  1. import java.util.Scanner;  
  2. public class ch2_4   
  3. {  
  4.     public static void main(String[] args)   
  5.     {  
  6.         int i,max,min,sum;  
  7.         int x[]=new int[10];  
  8.           
  9.         max=0;          //注意,这里存放最小值0  
  10.         min=100;        //注意,这里存放最大值100  
  11.         sum=0;  
  12.         for(i=0;i<10;i++)   //循环10次,给10个人打分  
  13.         {  
  14.             System.out.print("请输入第"+(i+1)+"分数:");  
  15.             Scanner input=new Scanner(System.in);  
  16.             x[i]=input.nextInt();               //键盘接收分数,存入数组  
  17.  
  18.             sumsum=sum+x[i];                       //累加求和  
  19.  
  20.             //通过打擂方式求最大值、最小值  
  21.                 if(x[i]>max)max=x[i];  
  22.             if(x[i]<min)min=x[i];  
  23.         }  
  24.         System.out.println("去掉一个最高分和一个最低分:"+max+"、"+min);  
  25.         System.out.println("平均分:"+(sum-max-min)/8);  
  26.     }  
  27. }   

(6)运行结果

运行程序,结果如图2.4所示。

 
图2.4  运行结果
【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

计算机病毒分析与防治简明教程

本书全面翔实地介绍了各种病毒的原理,以操作系统的发展为主线,结合病毒的发展过程来综合分析病毒。在分析工具上,较多地利用了脚本语言、...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊