package 實驗6;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO 自動生成的方法存根
int array[]= new int[10];
Scanner in=new Scanner(System.in);
for (int i = 0; i < array.length; i++) {
System.out.println("請輸入第"+(i+1)+"個數");
array[i]=in.nextInt();
}
SCAN(array, 10);
}
public static void SCAN(int array[],int m){
int i,j;
int temp;
int now,sum=0;
float avg=0;
for ( j = 0; j < array.length; j++) {
for(i=j+1;i<array.length;i++){
if(array[j]>array[i]){
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
Scanner in= new Scanner(System.in);
System.out.println("請輸入當前磁軌號");
now=in.nextInt();
System.out.println("請輸入當前磁軌方向1、0");
int d=in.nextInt();
if(array[m-1]<now){//如果當前磁軌號大於所有磁軌號
for(i=m-1;i>=0;i--){
System.out.print(array[i]+" ");
sum+=now-array[i];
now=array[i];
}
}
else{//當前磁軌號在磁軌號之間
if(array[0]>now)//小於所有磁軌號
{
for(i=0;i<m;i++){
System.out.print(array[i]+" ");
sum+=array[i]-now;
now=array[i];
}
}
else{
int count=0;
int temp1;
int array1[]=new int[m+1];//建立新的陣列來儲存包括當前磁軌號的值
for(int p=0;p<m;p++){
array1[p]=array[p];
}
array1[m]=now;
for (int n = 0; n < array1.length-1; n++) {//氣泡排序所有磁軌號
for (int n2 =n+1; n2 < array1.length; n2++) {
if(array1[n]>array1[n2]){
temp1=array1[n];
array1[n]=array1[n2];
array1[n2]=temp1;
}
}
}
for(int t=0;t<array1.length;t++){
if(array1[t]==now){//查詢排序好的當前磁軌號所在位置
count=t;
}
}
switch (d) {//選擇順序0為往小的走,1為大的走
case 0:
for(i=count-1;i>=0;i--){
System.out.print(array1[i]+" ");//遍歷比當前磁軌號小的的磁軌
sum+=now-array1[i];
now=array1[i];
}
for(i=count+1;i<array1.length;i++){//遍歷當前比磁軌號大的磁軌
System.out.print(array1[i]+" ");
sum+=array1[i]-now;
now=array1[i];
}
break;
case 1:
for(i=count+1;i<array1.length;i++){//比磁軌號大的磁軌
System.out.print(array1[i]+" ");
sum+=array1[i]-now;
now=array1[i];
}
for(i=count-1;i>=0;i--){//磁軌號小的磁軌
System.out.print(array1[i]+" ");
sum+=now-array1[i];
now=array1[i];
}
break;
}
}}
avg=(float) (sum/(m*1.0));
System.out.println("平均長度"+avg+" ");
}
}