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 }
相關文章
相關標籤/搜索