java例題_35 找到最大值和最小值並交換位置


 1 /*35 【程序 35 最大最小交換】  
 2 題目:輸入數組,最大的與第一個元素交換,最小的與最后一個元素交換,輸出數組。 
 3 */
 4 
 5 /*分析
 6  * 1、先初始化一個數組,然后從鍵盤獲得值(用for循環賦值)
 7  * 2、聲明一個max來存儲數組第一個元素並在找到數組中最大的值時交換,同理,再聲明一個min
 8  * 3、輸出數組
 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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM