1. 程式人生 > >java經典程式設計題(34-36)

java經典程式設計題(34-36)

【程式35】題目:輸入陣列,最大的與第一個元素交換,最小的與最後一個元素交換,輸出陣列。

import java.util.Scanner;

public class Demo1 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("請輸入陣列個數:");
		int n = scan.nextInt();
		int[] arr = new int[n];
		System.out.println("請輸入"+n+"個整數:");
		for(int i=0;i<n;i++){
			arr[i]=scan.nextInt();
		}
		int max=arr[0];
		int min=arr[0];
		int maxI=0;
		int minI=0;
		
		System.out.print("排序前: ");
		for(int i=0;i<n;i++){
			System.out.print(arr[i]+" ");
		}
		
		for(int i=0;i<n;i++){
			if(max<arr[i]){
				max=arr[i];
				maxI=i;
			}
			if(min>arr[i]){
				min=arr[i];
				minI=i;
			}
		}
		
		
		int temp1 = arr[0];//這兩個temp只是為了在交換時使用
		int temp2 = arr[min]; 
		
		arr[0] =arr[maxI];//首先交換a[0]和最大值a[max]
		arr[maxI]=temp1;
		
		if(minI!=0){
			arr[min] = arr[n-1];
			arr[n-1] = temp2;
		}else{
			arr[maxI] = arr[n-1];
			arr[n-1] = temp1;
		}
		
		System.out.println();
		System.out.print("排序後:");
		for(int i=0;i<n;i++){
			System.out.print(arr[i]+" ");
		}
	}
}

【執行結果】

請輸入陣列個數:

5

請輸入5個整數:

1 5 2 4 3

排序前: 1 5 2 4 3 

排序後:5 3 2 4 1