【程序36】 題目:有n個整數,使其前面各數順序向後移m個位置, 最後m個數變成最前面的m個數

/*
	2017年3月10日09:59:54
	java基礎50道經典練習題 例36
	Athor: ZJY
	Purpose: 
	【程序36】
  題目:有n個整數,使其前面各數順序向後移m個位置,
  最後m個數變成最前面的m個數

*/
import java.util.Scanner;

public class ProgramNo36_1
{
	public static void main(String[] args) {
		final int N = 10;
		System.out.print("請輸入10個數的數組: ");
		Scanner sc = new Scanner(System.in);
		int count = 0;
		int[] array = new int[N];
		for (int i=0; i<array.length; i++) {
			array[count++] = sc.nextInt();
		}
	    System.out.print("請輸入一個小於10的數: ");
		int number = sc.nextInt();
		sc.close();

		arrayHandler(array, number);
		System.out.print("數組從"+number+"位開始前後倒置後爲:");
		print(array);
	}
	private static void arrayHandler(int[] array, int m) {
		int[] array1 = new int[m];
		for(int i=0; i<m; i++) {
			array1[i] = array[array.length-m+i];
		}
		for(int i=array.length-m-1; i>=0; i--) {
			array[i+m] = array[i];
		}
		for(int i=0; i<m; i++) {
			array[i] = array1[i];
		}
		
	}
	private static void print(int[] array){
		for(int i=0; i<array.length; i++)
			System.out.print(array[i]+" ");
		System.out.println();
	}
}
/*
	2017年3月10日09:59:54
	java基礎50道經典練習題 例36
	Athor: ZJY
	Purpose:  程序有誤
*/
import java.util.Scanner;
public class ProgramNo36_2
{
	public static void main(String[] args) {
		final int N = 10;
		System.out.print("請輸入10個數的數組:");
		Scanner scan = new Scanner(System.in);
		int[] a = new int[N];
		for(int i=0; i<a.length; i++)
		  a[i] = scan.nextInt();
		System.out.print("請輸入一個小於10的數:");
		int m = scan.nextInt();
		scan.close();
		int[] b = new int[m];
		int[] c = new int[N-m];
		for(int i=0; i<m; i++)
		  b[i] = a[i];
		for(int i=m,j=0; i<N; i++,j++)
		  c[j] = a[i];
		for(int i=0; i<N-m; i++)
		  a[i] = c[i];
		for(int i=N-m,j=0; i<N; i++,j++)
		  a[i] = b[j];
		for(int i=0; i<a.length; i++)
		  System.out.print(a[i]+" ");
	}
}



發佈了76 篇原創文章 · 獲贊 11 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章