需求:1、有一个int类型数组,数组内有若干元素,有用户输入移动的位置数m,要求写一个程序,将最后的m个数编程最前面的m个数,并返回变换后的新数组。
import java.util.Arrays;
import java.util.Scanner;
public class NumberMove {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] arr = { 5, 2, 7, 12, 21, 1, 13, 8 };// 定义一个int类型的数组arr
int[] newArr = new int[arr.length];// 定义一个新数组newArr,长度与原数组长度一致
System.out.println("请输入移动多少个位置:");
int m = scan.nextInt();
while (true) {
if (m > arr.length - 1 || m < 0) {// 判断移动的位置是否合法
System.out.println("移动位数不能大于数组个数,且不能为负数!请重新输入:");
m = scan.nextInt();
} else {
break;
}
}
for (int i = 0; i < arr.length; i++) {// 遍历原数组,将原数组的元素赋值给新数组
newArr[i] = arr[i];
}
for (int i = 0; i < arr.length; i++) {// 遍历数组,移动位置
int tp = (i + m) % arr.length;
arr[tp] &#