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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© maxwell247 中级黑马   /  2015-9-27 09:16  /  979 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

从网上找到一份编程练习题,我决定将里面的题目全都做一遍。

/*
        题目:将一个数组逆序输出。
*/
/*
        分析:
        不晓得为啥会有这样的题目。
        思路一:直接用循环变量控制逆序就好了。但是这应该不是题目的本意。(所以我不这样写!)
        思路二:将数组中元素首尾依次对换。

        ----> 以下是思路二的实现
*/

import java.util.Random;

class NiXuShuChuShuZu {
        private static final int ARRAY_SIZE=11;

        public static void main(String[] args) {
                Random random=new Random();
                int[] arr=new int[ARRAY_SIZE];
                for (int i=0; i<arr.length; i++){
                        arr=random.nextInt(100)+1;
                }       
                System.out.println("--------逆序输出前--------");
                printArray(arr);
                niXu(arr);
                System.out.println("\n--------逆序输出后--------");
                printArray(arr);
                System.out.println();
        }

        public static void printArray(int[] arr){
                for (int element:arr){
                        System.out.print(element+" ");
                }
        }

        public static void niXu(int[] arr){
                int half_length=arr.length/2;
                for (int i=0; i<half_length; i++){
                        swap(arr,i,arr.length-1-i);
                }
        }

        private static void swap(int[] arr,int x,int y){
                int temp=arr[x];
                arr[x]=arr[y];
                arr[y]=temp;
        }
}

/*
        输出结果
--------逆序输出前--------
84 79 34 44 25 1 62 82 52 4 44
--------逆序输出后--------
44 4 52 82 62 1 25 44 34 79 84
*/

4 个回复

倒序浏览
为什么要弄1-100以内的随机数啊。。。。。

点评

没啥,因为题目没给定范围,我就自己设定了范围。  发表于 2015-9-27 09:23
回复 使用道具 举报
for(int start=0,end=(arr.length-1);start<=end;start++,end--){
       int temp = arr[start];
       arr[start] = arr[end];
       arr[end] = temp;
}

点评

好方法! 醍醐灌顶啊!  发表于 2015-9-27 09:39
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马