//解決了數組不打亂排序的問題
import java.util.*;
public class WorkHours
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int[][] hours = new int[8][8];
for(int i=0;i<8;i++)
for(int j=0;j<7;j++)
{
hours[i][j] = input.nextInt();
hours[i][7] += hours[i][j];
}
int[] sums = new int[8];//将帶待排序内容放入另一個數組,排序
for(int i=0;i<8;i++)
sums[i] = hours[i][7];
sort(sums);
for(int i=7;i>=0;i--)
{
for(int j=0;j<8;j++)//按排好序的數組查找周遊原目标數組
{
if(sums[i] == hours[j][7])
{ System.out.println(j+ " "+hours[j][7]);}//易發生多次掃描
}
}
}
public static void sort(int [] sums)
{
for(int i=0;i<7;i++)
{
int currentMin = sums[i];
int currentMinIndex = i;
for(int j=i+1;j<8;j++)
{
if(currentMin<sums[j])
{
currentMin = sums[j];
currentMinIndex = j;
}
}
if(currentMinIndex != i)
{
sums[currentMinIndex] = sums[i];
sums[i] = currentMin;
}
}
for(int i=0;i<4;i++)//倒序
{
int temp = sums[i];
sums[i] = sums[7-i];
sums[7-i] = temp;
}
for(int i=0;i<7;i++)
{
if(sums[i]==sums[i+1])
sums[i]=-1;//重複元素置-1,防止多次掃描
}
}
}
《Java語言程式設計 基礎篇》(機械工業出版社 原書第十版)習題8.3