import java.util.Arrays;
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站制作、科尔沁网络推广、微信小程序、科尔沁网络营销、科尔沁企业策划、科尔沁品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供科尔沁建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
import java.util.Scanner;
public class ScoreDemo {
public static void main(String[] args) {
double[] scores = new double[5];
Scanner input = new Scanner(System.in);//扫描器用于读取控制台输入
for (int i = 0; i scores.length; i++) {//输入分数
System.out.print("请输入第" + (i + 1) + "位评委的分数");
String temp = input.nextLine().trim();
scores[i] = Double.parseDouble(temp);
}
getScore(scores);//对分数进行处理的函数
}
private static void getScore(double[] scores) {
//对分数进行排序
double temp;
for (int i = 0; i scores.length - 1; i++) {
for (int j = i + 1; j scores.length; j++) {
if (scores[i] scores[j]) {
temp = scores[i];
scores[i] = scores[j];
scores[j] = temp;
}
}
}
//去掉一个高分,一个低分后的平均分
double sum =0;
for (int i = 1; i scores.length-1; i++) {
sum+=scores[i];
}
double pjf = sum/(scores.length-2);
System.out.println("排序后的分数:"+Arrays.toString(scores));
System.out.println("去掉一个最高分:"+scores[scores.length-1]);
System.out.println("去掉一个最低分:"+scores[0]);
System.out.println("最后的平均分是:"+String.format("%.2f",pjf));//平均分保留2位小数
}
}
运行测试
请输入第1位评委的分数92.5
请输入第2位评委的分数90.0
请输入第3位评委的分数93.8
请输入第4位评委的分数95.9
请输入第5位评委的分数97.9
排序后的分数:[90.0, 92.5, 93.8, 95.9, 97.9]
去掉一个最高分:97.9
去掉一个最低分:90.0
最后的平均分是:94.07
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
double[]scores=new double[10];
for(int i=0;i10;i++){
System.out.println("请输入评委分数:");
scores[i]=Double.parseDouble(sc.nextLine());
}
Arrays.sort(scores);
double total=0;
for(int i=1;i9;i++){
total+=scores[i];
}
total=total/8;
System.out.println("最终得分:"+total);
}
//希望你看完采纳 谢谢
#include stdio.h
#define num 10 // 十个评委
void star(void); //打印星号
void sort(float score[]); //从小到大排序
int main()
{
int i;
float sum=0;
float average;
float score[10];
star(); //打印星号
printf("请输入每个评委给您打的分数\n");
for(i=0; inum; i++)
{
printf("第%2d各评委打的分数为:", i+1);
scanf("%f", score[i]);
}
sort(score);
for(i=1; inum-1; i++) //求去最高最低分后的总分
{
sum+=score[i];
}
average=sum/8; //求平均分
printf("\n去掉的最高分为:%0.2f\n", score[num-1]);
printf("\n去掉的最低分为:%0.2f\n", score[0]);
printf("\n去掉最高分最低分后,您的总分为:%0.2f\n", sum);
printf("\n去掉最高分最低分后,您的平均分为:%0.2f\n", average);
printf("\n哈哈, 谢谢您的合作!\nGOOD BYE!\n");
star(); //打印星号
return 0;
}
//排序函数
void sort(float score[]) //从小到大排序
{
int i;
int j;
float t; // 用于交换数
for(i=0; inum; i++)
{
for(j=i; jnum; j++)
{
if(score[i] score[j])
{
t= score[i];
score[i]= score[j];
score[j]=t;
}
}
}
}
//star函数
void star(void)
{
int i;
for(i=0; i60; i++)
{
printf("*");
}
printf("\n");
}
/* 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了)
* 程序的版权和版本声明部分
* All rights reserved.
* 文件名称: txt.c
* 作 者: liuyongshui
* 问 题: 在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。
选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
* 问题来源:
* 完成日期: 2013 年4 月22日
* 版 本 号: V1.0
*/
#include stdio.h
#define num 10 // 十个评委
void star(void); //打印星号
void sort(float score[]); //从小到大排序
int main()
{
int i;
float sum=0;
float average;
float score[10];
star(); //打印星号
printf("请输入每个评委给您打的分数\n");
for(i=0; inum; i++)
{
printf("第%2d各评委打的分数为:", i+1);
scanf("%f", score[i]);
}
sort(score);
for(i=1; inum-1; i++) //求去最高最低分后的总分
{
sum+=score[i];
}
average=sum/8; //求平均分
printf("\n去掉的最高分为:%0.2f\n", score[num-1]);
printf("\n去掉的最低分为:%0.2f\n", score[0]);
printf("\n去掉最高分最低分后,您的总分为:%0.2f\n", sum);
printf("\n去掉最高分最低分后,您的平均分为:%0.2f\n", average);
printf("\n哈哈, 谢谢您的合作!\nGOOD BYE!\n");
star(); //打印星号
return 0;
}
//排序函数
void sort(float score[]) //从小到大排序
{
int i;
int j;
float t; // 用于交换数
for(i=0; inum; i++)
{
for(j=i; jnum; j++)
{
if(score[i] score[j])
{
t= score[i];
score[i]= score[j];
score[j]=t;
}
}
}
}
//star函数
void star(void)
{
int i;
for(i=0; i60; i++)
{
printf("*");
}
printf("\n");
}
package com.test;
import java.io.InputStream;
import java.util.Scanner;
public class Test {
int[] nums = new int[5]; //评委分数数组
int avg; //平均分
int num=0; //输入的值
int num2=0; //冒泡用的
int num3=0; //冒泡用的
int sun=0; //总分
Scanner input = new Scanner(System.in);
public void test(){
for(int i=0;i5;i++){ // 输入5个评委分
System.out.println("请评委输入分数:");
num = input.nextInt();
if(num0 num=10){
nums[i]=num;
}else{
System.out.println("分数只能在0-10之间");
i--;
continue;
}
}
for(int i=0;inums.length;i++){
sun=sun+nums[i];
}
for(int i = 0; inums.length-1 ;i++){
if(nums[i] nums[i+1]){
num2 = nums[i];
nums[i]=nums[i+1];
nums[i+1]=num2;
}
}
for(int i = 1; inums.length-1 ;i++){
if(nums[i] nums[i+1]){
num3 = nums[i];
nums[i]=nums[i+1];
nums[i+1]=num2;
}
}
avg=(sun-nums[0]-nums[1])/3;
System.out.println("平均分为:"+avg);
}
public static void main(String[] args) {
Test tt = new Test();
tt.test();
}
}
class Test
{
public static void main(String []args)
{
int a[]={4,458,53,44,84,22,86,114,98,41};
int q=0;
for(int i=0;i10;i++)
{
for(int j=0;j10;j++)
{
int temp=0;
if(a[i]a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
break;
}
}
}
a[0]=0;
a[9]=0;
for(int x=0;x10;x++)
{
q=a[x]+q;
}
q=q/8;
System.out.println("平均分是"+q);
}
}
正好我闲着,给你写一个吧。
我写的这个评委分数是在代码里固定到数组里了,如果你需要运行时手动输入评分,可以将oldScores里的数据改成手动输入就行了(这个不用我再写了吧,如果不会再追问,再告诉你)。
你先新建一个类,将下面的main方法全部复制进去就能运行了,自己看一下吧。
/** 主方法 */
public static void main(String[] args)
{
/** 保存原始评分的数组(如果你需要运行时手动输入分数,将 oldScores中的数据改成手动输入就行了 */
double[] oldScores = {15, 77, 55, 88, 79, 98, 67, 89, 68, 88};
/** 最终将用来保存排序后的数组 */
double[] scores = new double[oldScores.length];
double temp;
/** 平均分 */
double avg = 0;
int k;
/** 将原始评分放入最终排序数组 */
for (int i = 0; i oldScores.length; i++)
{
scores[i] = oldScores[i];
}
/** 开始排序 */
for (int i = 0; i scores.length - 1; i++)
{
k = i;
for (int j = i + 1; j scores.length; j++)
{
if (scores[k] scores[j])
{
k = j;
}
}
if (i != k)
{
temp = scores[k];
scores[k] = scores[i];
scores[i] = temp;
}
}
/** 计算去掉最高分和最低分之后的和 */
double sum = 0;
/** 记录计算平均分的分数个数 */
double num = 0;
for (int i = 1; i scores.length - 1; i++)
{
num++;
sum += scores[i];
}
/** 计算平均分 */
avg = sum / num;
/** 最公平的肯定不是在scores数组两端 */
double zgp = 0;
double cha = 0;
/** 标记与平均值差值最小的分数位置 */
int flag = 0;
/** 开始寻找最公平评分 */
for (int i = 1; i scores.length - 1; i++)
{
/** 为cha赋初始值,注意比较差值要使用绝对值比较 */
if (i == 1)
{
cha = Math.abs(scores[i] - avg);
}
double cha1 = Math.abs(scores[i] - avg);
if (cha1 cha)
{
cha = cha1;
flag = i;
}
}
zgp = scores[flag];
/** 由于最不公平的分数肯定在scores数组的第一个或者是最后一个 */
double bgp = 0;
if (Math.abs(scores[0] - avg) Math.abs(scores[scores.length - 1] - avg))
{
bgp = scores[0];
}
else
{
bgp = scores[scores.length - 1];
}
/** 全部计算完成,下面开始输出结果 */
System.out.println("原始评委分数如下:");
for (int i = 0; i oldScores.length; i++)
{
System.out.print(oldScores[i] + ", ");
}
System.out.println();
System.out.println("排序后分数如下:");
for (int i = 0; i scores.length; i++)
{
System.out.print(scores[i] + ", ");
}
System.out.println();
System.out.println("去掉最高分和最低分后平均分:" + avg);
System.out.println("最公平分数:" + zgp);
System.out.println("最不公平分数:" + bgp);
}