黑马程序员技术交流社区

标题: 大神快来快来帮我看看怎么回事 [打印本页]

作者: 阳光下午睡    时间: 2016-6-30 18:58
标题: 大神快来快来帮我看看怎么回事
import java.util.*;
class Day05 {
        public static void main(String[] args) {
                        print3();
        }
public static void print3(){
                int[] arr = new int[6];
                Scanner sc = new Scanner(System.in);
                int count = 0;
                while (count<6){
                        System.out.println("请输入第"+(count+1)+"数据");
                        int num = sc.nextInt();
                        arr[count] = num;
                        count++;
                }

                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 start = 0,end = arr.length-1 ;start<=end ;start++,end-- ){
                        int temp = arr[start];
                        arr[start] = arr[end];
                        arr[end] = temp;
                }*/
               
                for (int i = 0 ;i<arr.length ;i++ ){
                        if (i%2==1&&i<arr.length-2){
                                int temp = arr[i];
                                arr[i] = arr[i+2];
                                arr[i+2] = temp;
                        }
                }

                for (int i = 0 ;i<arr.length ;i++ ){
                        if (i==1&&(arr.length-1)%2==1){
                                int temp = arr[i];
                                arr[i] = arr[arr.length-1];
                                arr[arr.length-1] = temp;
                        }
                        System.out.print(arr[i]+" ");
                }
               

        }

}
我的最后一次交换位置是否有问题,如果没问题的话,为什么不判断i==1直接判断(arr.length-1)%2==1输出没有反应呢?
作者: 梦想天空分外蓝    时间: 2016-6-30 19:01
好认真  ,,我也不知道,,
作者: robintian    时间: 2016-6-30 21:30
给你分享一下我的代码吧
                /*第四步交换*/
                public static void finalSwap(int[] arr) {
                        if(1 == (arr.length - 1) % 2) {
                                swap(arr, 1, arr.length - 1);
                        }
                        else {
                                swap(arr, 1, arr.length - 2);
                        }
                }

                /*交换数组中两个元素的位置*/
                public static void swap(int[] arr, int index1, int index2) {
                        int temp = arr[index1];
                        arr[index1] = arr[index2];
                        arr[index2] = temp;
                }
作者: robintian    时间: 2016-6-30 21:32
话说你做的是第五天的作业么,最好以后把题也放上来吧
作者: 微--尘    时间: 2016-7-2 01:03
用Eclipse的Debug一步一步调试运行看下,看执行步骤和数组值的变化




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