1. 程式人生 > >面試題2 怎樣實現元素互換

面試題2 怎樣實現元素互換

怎樣實現元素互換

1.題述
	  從鍵盤上輸入10個整數,並將其放入一個一維陣列中,然後將其前5個元素與後5個元素對換,
	  即:第1個元素與第10個元素互換,第2個元素與第9個元素互換…第5個元素與第6個元素互換。
	  分別輸出陣列原來各元素的值和對換後各元素的值。
2.效果

在這裡插入圖片描述

3.Java程式碼
package com.example.demo.interviewQuestions;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @Description 面試題2 怎樣實現元素互換
 * @author 大都督
 * @date 2018年12月29日
 */
public class ExchangeQuestion {

	/**
	 * 從鍵盤上輸入10個整數,並將其放入一個一維陣列中,然後將其前5個元素與後5個元素對換,
	 * 即:第1個元素與第10個元素互換,第2個元素與第9個元素互換…第5個元素與第6個元素互換。
	 * 分別輸出陣列原來各元素的值和對換後各元素的值。
	 */
	public static void main(String args[]) {
        print();
    }
    public static int[] write() {
    	//緩衝陣列 
        BufferedReader[] buf = new BufferedReader[10];
        //開關量 和 中間量 
        int n; 
        int array[] = new int[10];
        //賦值
        for (int i = 0; i < 10; i++) {
        	//給每個緩衝區定義 
            buf[i] = new BufferedReader(new InputStreamReader(System.in));
            do { /* 判斷是否是空串,如是則重新輸入 */
                n = 1;
                System.out.print("請輸入第" + (i + 1) + "個整數:");
                try { /* 建立一個異常捕獲 */
                    array[i] = Integer.parseInt(buf[i].readLine());/* 執行串變整數 */
                    /*
                    * Integer.parseInt(str) - str 轉成 int型 buf[i].readLine() -
                    * 從系統輸入緩衝區讀入字元流給buf緩衝區並返回字串
                    */
                } catch (NumberFormatException e) { /* 捕獲異常 */
                    System.out.println("資料輸入錯誤請重新輸入");/* 處理異常 */
                    n = 0;
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } while (n == 0);
        }
        return array;
    }
    public static void print() {
        int[] ary = write();
        int s;
        System.out.println("\n你輸入的陣列是:");
        for (int i = 0; i < 10; i++) {  /* 輸出原陣列 */
            System.out.print(ary[i] + " ");
        }
        for (int i = 0; i < 5; i++)/* 對換 */ {
            s = ary[i];
            ary[i] = ary[9 - i];
            ary[9 - i] = s;
        }
        System.out.println("\n對換後的陣列是:");
        for (int i = 0; i < 10; i++) { /* 輸出對換後陣列 */
            System.out.print(ary[i] + " ");
        }
        System.out.println();
    }



}