import java.util.Scanner;
/*
分析以下需求,并用代码实现:
(1)键盘录入6个int类型的数据存数数组arr中
(2)将arr数组中的内容反转
(3)将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推
(4)最后将数组最后一个角标为奇数的元素 和数组中第一个角标为奇数的元素交换
(5)打印最终的数组(实现了1-4步之后的数组)
(6)如:用户输入的6个int数字为[1,2,3,4,5,6],最后输出的结果为[6, 5, 4, 1, 2, 3]
*/
public class Test1 {
public static void main(String[] args) {
int[] arr = getArrayByKeyBoard();
getSecurityArray(arr);
print(arr);
}
public static int[] getArrayByKeyBoard() {
int[] arr = new int[6];
Scanner sc = new Scanner(System.in);
System.out.println("请依次输入6个整数:");
for(int i=0;i<arr.length;i++) {
arr[i] = sc.nextInt();
}
return arr;
}
public static void reverseArray(int[] arr) {
int startIndex = 0;
int endIndex = arr.length-1;
for(;startIndex<=endIndex;startIndex++,endIndex--) {
swap(arr,startIndex,endIndex);
}
}
private static void swap(int[] arr, int startIndex, int endIndex) {
int temp = arr[startIndex];
arr[startIndex] = arr[endIndex];
arr[endIndex] = temp;
}
public static void reverseArrayByIndex(int[] arr){
for(int i=1,j=i+2;i<arr.length&&j<arr.length;i+=2,j+=2) {
swap(arr,i,j);
}
}
private static void swap(int[] arr){
int lastIndex = (arr.length-1)%2==0?arr.length-2:arr.length-1;
swap(arr,1,lastIndex);
}
public static void print(int[] arr){
if(arr==null) {
System.out.println("null");
return;
}
if(0==arr.length) {
System.out.println("[]");
return;
}
System.out.print("[");
for(int i =0;i<arr.length;i++) {
System.out.print(arr[i]);
if(i!=arr.length-1)
System.out.print(", ");
}
System.out.println("]");
}
public static void getSecurityArray(int[] arr) {
reverseArray(arr);
reverseArrayByIndex(arr);
swap(arr);
}
}
|
-
捕.PNG
(40.95 KB, 下载次数: 1)
|