黑马程序员技术交流社区

标题: [新人第二贴]关于数组中反转,遍历,及互换等问题的思考 [打印本页]

作者: gz9218    时间: 2016-9-4 19:35
标题: [新人第二贴]关于数组中反转,遍历,及互换等问题的思考
分析以下需求,并用代码实现:(扩展)
        (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]


import java.util.Scanner;                                                //导入Scanner包
class Day5_3 {
        public static void main(String[] args) {                //main方法
                Scanner in = new Scanner(System.in);                //创建键盘输入对象
                System.out.println("请输入6个整数");
                int[] arr = new int[6];                                                //定义一个数组,长度为6
                               
                for (int i = 0;i < arr.length ;i++ ) {  //输入数组
                System.out.println("请输入"+(i+1)+"个整数:");
                        arr[i] = in.nextInt();
                }
               
                for (int i = 0;i < arr.length / 2 ; i++){  //反转
                        int temp = arr[i];
                        arr[i] = arr[arr.length-1-i];
                        arr[arr.length-1-i] = temp;
                }

                for (int i = 1;i < arr.length-2 ; i++){                        //将翻转后的数组角标为奇数的互相交换,arr.length-2是为了防止数组角标越界异常
                        int temp1 = arr[i+2];
                        arr[i+2] = arr[i];
                        arr[i] = temp1;       
                }

                if ((arr.length-1)%2==0) {                                        //判断最后一个元素的角标是否为奇数
                        int temp2 = arr[1];                                                //是的话arr[arr.length-1]与arr[1]交换
                        arr[1] = arr[arr.length-1];
                        arr[arr.length-1]=temp2;

                }else{
                        int temp2 = arr[1];                                                //是的话arr[arr.length-2]与arr[1]交换
                        arr[1] = arr[arr.length-2];
                        arr[arr.length-2]=temp2;
                }
       
                                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.print("]");
        }       
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2