A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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)

捕.PNG

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马