java例题_35 找到最大值和最小值并交换位置

 1 /*35 【程序 35 最大最小交换】  2 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。  3 */
 4 
 5 /*分析  6  * 一、先初始化一个数组,而后从键盘得到值(用for循环赋值)  7  * 二、声明一个max来存储数组第一个元素并在找到数组中最大的值时交换,同理,再声明一个min  8  * 三、输出数组  9  * */
10 
11 package homework; 12 
13 import java.util.Scanner; 14 
15 public class _35 { 16 
17     public static void main(String[] args) { 18         System.out.println("请输入5个整数,并以空格间隔:"); 19         // 从键盘获得一个数组(12 8 66 32 45)
20         int a[]=new int[5]; 21         Scanner sc=new Scanner(System.in); 22         for (int i = 0; i < a.length; i++) { 23             a[i]=sc.nextInt();  //赋值给数组
24  } 25         //输出数组,检验是否赋值正确
26         System.out.print("数组初值为:"); 27         for (int i = 0; i < a.length; i++) { 28             System.out.print(a[i]+" "); 29  } 30         System.out.println();  //换行 31         //声明一个max来存储数组第一个元素并在找到数组中更大的值时交换,同理,再声明一个min;
32         int max=a[0], min=a[a.length-1]; 33         //再声明k记录最大值的位置,q记录最小值的位置
34         int k=0,q=(a.length-1); 35         for (int i = 0; i < a.length; i++) { 36             if(a[i]>max) { 37                 max=a[i];           //找到最大的值是多少
38                 k=i;                //找到最大值的位置
39  } 40  } 41         for (int i = 0; i < a.length; i++) { 42             if(a[i]<min) { 43                 min=a[i];           //找到最小的值是多少
44                 q=i;                //找到最小值的位置
45  } 46  } 47         
48 // System.out.println(k+" "+a[k]+" "+q+" "+a[q]); //测试 49         
50         //交换最大值到a[0],最小值到a[a.lengh-1];
51         a[k]=a[0]; a[0]=max; 52         a[q]=a[a.length-1];a[a.length-1]=min; 53         //输出换序后的数组
54         System.out.print("数组换序后为:"); 55         for (int i = 0; i < a.length; i++) { 56             System.out.print(a[i]+" "); 57  } 58  } 59 
60 }
相关文章
相关标签/搜索