输入十个数,最大的数和第最后一个数对换,最小的数和第一个数字对换

这个题的坑在于,替换一次最小或者最大的之后再重新找最小的和最大的,然后再替换最大的。

如果想着单独处理最大最小分别在第一和最后的情况的话,就有点复杂了。

 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 }

 

posted @ 2018-09-28 20:45  kongchung  阅读(166)  评论(0编辑  收藏  举报