5位评委对参赛选手进行打分,将所有的打分结果存储到对应类型的数组中, 将所有的评分结果去除一个最低分,去除一个最高分,然后获取的平均分数为 选手的最终得分.设计程序,用键盘输入5位评委的评分,并打印输

5位评委对参赛选手进行打分,将所有的打分结果存储到对应类型的数组中,
将所有的评分结果去除一个最低分,去除一个最高分,然后获取的平均分数为
选手的最终得分.设计程序,用键盘输入5位评委的评分,并打印输出选手的最终得分

package day06作业九月二十三;

import java.util.Scanner;

/*5位评委对参赛选手进行打分,将所有的打分结果存储到对应类型的数组中,
将所有的评分结果去除一个最低分,去除一个最高分,然后获取的平均分数为
选手的最终得分.设计程序,用键盘输入5位评委的评分,并打印输出选手的最终得分.*/
public class 第十一题 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		double[] fen = new double[5];
		while (true) {
			System.out.println("请5位评委给选手打分");
			Scanner scanner = new Scanner(System.in);
			for (int i = 0; i < fen.length; i++) {
				System.out.println("请第" + (i + 1) + "位评委给选手打分");
				fen[i] = scanner.nextDouble();
			}
			System.out.println("5位评委给选手打的分数是");
			for (int i = 0; i < fen.length; i++) {
				System.out.println(fen[i]);
			}
			// 筛选最大值
			for (int i = 1; i < fen.length; i++) {
				for (int j = 0; j <= fen.length - i - 1; j++) {
					if (fen[j] > fen[j + 1]) {
						double temp = fen[j];
						fen[j] = fen[j + 1];
						fen[j + 1] = temp;
					}
				}
			}
			System.out.println("可以筛选出最大值为" + fen[4]);
			double max = fen[4];
			// 筛选最小值
			for (int i = 1; i < fen.length; i++) {
				for (int j = 0; j <= fen.length - i - 1; j++) {
					if (fen[j] < fen[j + 1]) {
						double temp = fen[j];
						fen[j] = fen[j + 1];
						fen[j + 1] = temp;
					}
				}
			}
			System.out.println("可以筛选出最小值为" + fen[4]);
			double min = fen[4];
			// 总分和为
			double sum = 0;
			for (int i = 0; i < fen.length; i++) {
				sum += fen[i];
			}
			double num = sum - max - min;
			System.out.println("去掉一个最高分和最低分后的总分为" + num);
			// 平均分
			double ping = num / 3;
			System.out.println("平均分为" + ping);
		}

	}

}

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
三 11. 对参赛结果进行处理:参赛选手n人(n>1),评委m人(m>2),评委给每一选手一个数score(数score为小于等于10的一个正实数)。选手的最后得分lastScore计算方法为 (1)m<9时,去掉一个最高分一个最低后另m-2个得分的平均值。 (2)m≥9时,去掉两个最高分和两个最低后另m-4个得分的平均值。 假设事先已经建立了text型的数据文件f1.txt,其中依次记录着n个选手的编号(一个正整数)、姓名(一个字符串)以及m个评委给出的得分。 请编制程序,依次从数据文件f1.txt中读入n个选手的有关信息,而后按上述规定方法计算出每一个选手的最后得分,而且往屏幕上以及另一个text型文件f2.txt中同时出如下形式的结果信息。 假设参赛选手人数n=5,评委人数m=7,磁盘文件f1.txt中的初始数据为: 1 zhangjin 8.8 9.3 7.9 8.7 8.9 9.7 9.2 2 lintao 8.9 8.2 8.6 8.8 8.5 9.1 9.3 3 guojian 8.9 8.4 8.7 8.6 8.6 8.4 8.6 4 maling 7.9 8.3 8.5 8.6 8.5 8.9 8.3 5 liuyifan 9.5 9.1 9.8 9.2 9.0 9.5 8.9 那么,程序执行后,屏幕显示结果以及磁盘文件f2.txt中的结果均应该为: ---------------------------------------------------------- 参赛号 姓 名 最高分 最低 累积 最后得分 ---------------------------------------------------------- 1 zhangjin 9.7 7.9 44.9 8.98 2 lintao 9.3 8.2 43.9 8.78 3 guojian 8.9 8.4 42.9 8.58 4 maling 8.9 7.9 42.2 8.44 5 liuyifan 9.8 8.9 46.3 9.26 ---------------------------------------------------------- 思考:可进一步考虑找出比赛的第1至第k名,也在屏幕以及f2.txt中同时出相关的结果信息(k小于等于n,并规定若多个选手最后得分相同时,则有效(即已删除原来的最高分后)中最高分高者名次优先)。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值