Java50道经典习题-程序35 最大最小交换

题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
分析: 例如输入6 4 8 3 9 7
交换后输出9 4 8 7 6 3

 1 import java.util.Arrays;
 2 import java.util.Scanner;
 3 public class Prog35 {
 4     public static void main(String[] args) {
 5         Scanner scan=new Scanner(System.in);
 6         System.out.println("请输入要输入的数组的长度:");
 7         int n=scan.nextInt();
 8         int [] a=new int[n];
 9         System.out.println("请依次输入组数的各个元素,输入一个非数字字符结束输入:");
10         int m=0;
11         while(scan.hasNextInt()) {//当用户不再进行输入时结束循环
12             a[m++]=scan.nextInt();//后自增和while循环保证自少执行一次循环语句且m==0时能被执行
13         }
14         scan.close();
15         //输出用户输入的数组
16         System.out.println("用户输入的数组为:");
17         for(int i=0;i<n;i++) {
18             System.out.print(a[i]+" ");
19         }
20         System.out.println();//换行
21         //新建一个数组接收原来的数组并进行排序
22         int [] b=new int[n];
23         for(int t=0;t<n;t++) {
24             b[t]=a[t];
25         }
26         Arrays.sort(b);
27         int min=b[0];
28         int max=b[n-1];
29         for(int r=0;r<n;r++) {
30             if(a[r]==max) {
31                 a[r]=a[0];
32                 a[0]=max;
33             }
34             if(a[r]==min) {
35                 a[r]=a[n-1];
36                 a[n-1]=min;
37             }
38         }
39         //输出交换大小之后的数组
40         System.out.println("交换大小之后的数组为:");
41         for(int k=0;k<n;k++) {
42             System.out.print(a[k]+" ");
43         }
44     }
45 }
46 /*运行结果
47 请输入要输入的数组的长度:
48 6
49 请依次输入组数的各个元素,输入一个非数字字符结束输入:
50 6
51 4
52 8
53 3
54 9
55 7
56 .
57 用户输入的数组为:
58 6 4 8 3 9 7 
59 交换大小之后的数组为:
60 9 4 8 7 6 3 
61 */

 

posted @ 2019-04-30 16:13  parkour高手  阅读(536)  评论(0)    收藏  举报