练习:评委打分

案例:

评委打分。

需求:

在唱歌比赛中,有 6 名评委给选手打分,分数范围是【0 - 100】之间的整数。选手的最后得分为:去掉最高分、最低分后的 4 个评委的平均分,请完成上述过程并计算出选手的得分。

代码一:

//评委打分:
//代码一:
package demo01;
import java.util.Scanner;
public class HelloJava {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请依次输入 6 位评委打的分数(【0 - 100】之间的整数):");
		//定义一个数组用于存放 6 位评委打的分数:
		int[] array = new int[6];
		for(int i = 0; i < array.length; i++) {
			array[i] = sc.nextInt();
			//判断输入的分数是否在【0 - 100】之间:
			if(array[i] > 100 || array[i] < 0) {
				System.out.println("输入的分数不合法,此次算出的选手平均分不准确!");
				break;
			}
		}
		sc.close();
		//找出 6 位评委的最高分:
		int max = array[0];
		for(int i = 0; i < array.length; i++) {
			if(array[i] > max) {
				max = array[i];
			}
		}
		//找出 6 位评委的最低分:
		int min = array[0];
		for(int i = 0; i < array.length; i++) {
			if(array[i] < min) {
				min = array[i];
			}
		}
		//求出选手最终得分:
		int sum = 0;
		for(int i = 0; i < array.length; i++) {
			sum += array[i];
		}
		sum = sum - max - min;
		double average = sum / 4;
		System.out.println("选手的得分为:" + average);
	}
}

运行结果一:

代码一能够实现题目要求,但是如果我一旦分数输入错误,就只能全部重新输入,如果评委很多,那么工作量将变大,以下提供一种即使输入错误也不需要全部重新输入,只需要继续输入未输入的分数即可的方法:

代码二:

//评委打分:
代码二:
package demo01;
import java.util.Scanner;
public class HelloJava {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请依次输入 6 位评委打的分数(【0 - 100】之间的整数):");
		//定义一个数组用于存放 6 位评委打的分数:
		int[] array = new int[6];
		for(int i = 0; i < array.length; ) {
			int score = sc.nextInt();
			if(score >= 0 && score <= 100) {
				array[i] = score;
				i++;
			}else {
				System.out.println("输入的分数不合法,请继续输入,当前 i 的值为:" + i );
			}
		}
		sc.close();
		//找出 6 位评委的最高分:
		int max = array[0];
		for(int i = 0; i < array.length; i++) {
			if(array[i] > max) {
				max = array[i];
			}
		}
		//找出 6 位评委的最低分:
		int min = array[0];
		for(int i = 0; i < array.length; i++) {
			if(array[i] < min) {
				min = array[i];
			}
		}
		//求出选手最终得分:
		int sum = 0;
		for(int i = 0; i < array.length; i++) {
			sum += array[i];
		}
		sum = sum - max - min;
		double average = sum / 4;
		System.out.println("选手的得分为:" + average);
	}
}

运行结果二:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扶光与望舒呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值