/*
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]+" ");
}
}