黑马程序员技术交流社区

标题: 有一个代码题不会做 [打印本页]

作者: 小菜白白白    时间: 2016-9-10 19:26
标题: 有一个代码题不会做
代码题:
(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_arr {
        public static void main(String[] args) {
                Scanner sc=new Scanner(System.in);
                int[] arr = new int [6];
                System.out.println("请输入6个数");
                for(int i=0;i<6;i++) {
                        arr=sc.nextInt();                       
                }
                showArr(arr);                //打印原数组
                System.out.println();
                reverseArr(arr);        //反转数组
                showArr(arr);                //打印数组
               
        }
        private static void reverseArr(int[] arr) {
                for (int i = 0; i < arr.length/2; i++) {
                        int temp=arr;
                        arr=arr[arr.length-i-1];
                        arr[arr.length-i-1]=temp;
                }
        }
        private static void showArr(int[] arr) {
                for (int i = 0; i < arr.length; i++) {
                        System.out.print(arr+"  ");
                }
        }       
}
第三个小步骤   (3)将翻转后的数组角标为奇数的互相交换 1和3换, 3和5换,以此类推   不会做了 ,是要用嵌套循环吗



作者: wuhsuai    时间: 2016-9-10 19:47
public static void changeArr(int[] arr){
            for (int i = 1; i < arr.length - 2; i+=2){
                int temp = arr[i];
                arr[i] = arr[i+2];
                arr[i+2] = temp;
            }
        }




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