【程序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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章