import?java.util.Arrays;
創(chuàng)新互聯(lián)公司網(wǎng)絡公司擁有10年的成都網(wǎng)站開發(fā)建設經(jīng)驗,上1000家客戶的共同信賴。提供網(wǎng)站設計、成都網(wǎng)站建設、網(wǎng)站開發(fā)、網(wǎng)站定制、買友情鏈接、建網(wǎng)站、網(wǎng)站搭建、成都響應式網(wǎng)站建設公司、網(wǎng)頁設計師打造企業(yè)風格,提供周到的售前咨詢和貼心的售后服務
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++)?{//輸入分數(shù)
System.out.print("請輸入第"?+?(i?+?1)?+?"位評委的分數(shù)");
String?temp?=?input.nextLine().trim();
scores[i]?=?Double.parseDouble(temp);
}
getScore(scores);//對分數(shù)進行處理的函數(shù)
}
private?static?void?getScore(double[]?scores)?{
//對分數(shù)進行排序
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("排序后的分數(shù):"+Arrays.toString(scores));
System.out.println("去掉一個最高分:"+scores[scores.length-1]);
System.out.println("去掉一個最低分:"+scores[0]);
System.out.println("最后的平均分是:"+String.format("%.2f",pjf));//平均分保留2位小數(shù)
}
}
運行測試
請輸入第1位評委的分數(shù)92.5
請輸入第2位評委的分數(shù)90.0
請輸入第3位評委的分數(shù)93.8
請輸入第4位評委的分數(shù)95.9
請輸入第5位評委的分數(shù)97.9
排序后的分數(shù):[90.0,?92.5,?93.8,?95.9,?97.9]
去掉一個最高分:97.9
去掉一個最低分:90.0
最后的平均分是:94.07
正好我閑著,給你寫一個吧。
我寫的這個評委分數(shù)是在代碼里固定到數(shù)組里了,如果你需要運行時手動輸入評分,可以將oldScores里的數(shù)據(jù)改成手動輸入就行了(這個不用我再寫了吧,如果不會再追問,再告訴你)。
你先新建一個類,將下面的main方法全部復制進去就能運行了,自己看一下吧。
/**?主方法?*/
public?static?void?main(String[]?args)
{
/**?保存原始評分的數(shù)組(如果你需要運行時手動輸入分數(shù),將?oldScores中的數(shù)據(jù)改成手動輸入就行了?*/
double[]?oldScores?=?{15,?77,?55,?88,?79,?98,?67,?89,?68,?88};
/**?最終將用來保存排序后的數(shù)組?*/
double[]?scores?=?new?double[oldScores.length];
double?temp;
/**?平均分?*/
double?avg?=?0;
int?k;
/**?將原始評分放入最終排序數(shù)組?*/
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;
/**?記錄計算平均分的分數(shù)個數(shù)?*/
double?num?=?0;
for?(int?i?=?1;?i??scores.length?-?1;?i++)
{
num++;
sum?+=?scores[i];
}
/**?計算平均分?*/
avg?=?sum?/?num;
/**?最公平的肯定不是在scores數(shù)組兩端?*/
double?zgp?=?0;
double?cha?=?0;
/**?標記與平均值差值最小的分數(shù)位置?*/
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];
/**?由于最不公平的分數(shù)肯定在scores數(shù)組的第一個或者是最后一個?*/
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];
}
/**?全部計算完成,下面開始輸出結(jié)果?*/
System.out.println("原始評委分數(shù)如下:");
for?(int?i?=?0;?i??oldScores.length;?i++)
{
System.out.print(oldScores[i]?+?",?");
}
System.out.println();
System.out.println("排序后分數(shù)如下:");
for?(int?i?=?0;?i??scores.length;?i++)
{
System.out.print(scores[i]?+?",?");
}
System.out.println();
System.out.println("去掉最高分和最低分后平均分:"?+?avg);
System.out.println("最公平分數(shù):"?+?zgp);
System.out.println("最不公平分數(shù):"?+?bgp);
}
package?com.test;
import?java.io.InputStream;
import?java.util.Scanner;
public?class?Test?{
int[]?nums?=?new?int[5];?//評委分數(shù)數(shù)組
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("請評委輸入分數(shù):");
num?=?input.nextInt();
if(num0??num=10){
nums[i]=num;
}else{
System.out.println("分數(shù)只能在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);
}
}