这个题的坑在于,替换一次最小或者最大的之后再重新找最小的和最大的,然后再替换最大的。
如果想着单独处理最大最小分别在第一和最后的情况的话,就有点复杂了。
1 import java.util.Scanner; 2 public class 整数最大金额最小对换1044 { 3 4 public static void main(String[] args) { 5 Scanner scanner=new Scanner(System.in); 6 int[] index=new int[10]; 7 for (int i = 0; i < 10; i++) { 8 index[i]=scanner.nextInt(); 9 } 10 scanner.close(); 11 12 int max_pos=0,min_pos=0; 13 int max=0,min=0xffff; 14 for(int i=0;i<10;i++) { 15 if(max<index[i]) { 16 max=index[i]; 17 max_pos=i; 18 } 19 if(min>index[i]) { 20 min=index[i]; 21 min_pos=i; 22 } 23 } 24 25 int temp=0; 26 temp=index[0]; 27 index[0]=min; 28 index[min_pos]=temp; 29 30 31 max_pos=0;min_pos=0; 32 max=0;min=0xffff; 33 for(int i=0;i<10;i++) { 34 if(max<index[i]) { 35 max=index[i]; 36 max_pos=i; 37 } 38 if(min>index[i]) { 39 min=index[i]; 40 min_pos=i; 41 } 42 } 43 44 temp=0; 45 temp=index[9]; 46 index[9]=max; 47 index[max_pos]=temp; 48 49 50 for(int i=0;i<10;i++) { 51 System.out.print(index[i]+" "); 52 } 53 54 } 55 56 }