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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 走遍世界找寻你 于 2013-11-19 20:28 编辑

class PersonDemo1 {
        public static void main(String[] args) {
                int[] temp={1,4,7,9,13,34,45,66,70};
                System.out.println(arrayRev(temp));
               
        }
public static void arrayRev(int[] arr) {
                for (int x = 0;x<arr.length/2 ;x++ ) {
                        int temp = arr[x];
                        arr[x] = arr[arr.length-1-x];
                        arr[arr.length-1-x] = temp;
                }
        }

为什么变异通不过,提示输出语句为空?

评分

参与人数 1技术分 +1 收起 理由
To + 1 很给力!

查看全部评分

8 个回复

倒序浏览
你怎么少一个 大括号
回复 使用道具 举报
你那个int[]arr 是什么 他有多少长度啊  你这个写的代码有问题 这是完整的代码按摩
回复 使用道具 举报
  1. class PersonDemo1 {
  2.         public static void main(String[] args) {
  3.                 int[] temp={1,4,7,9,13,34,45,66,70};
  4.                 System.out.println(arrayRev(temp));  //这里打印输出的是arrayRev(temp) 的返回值,

  5. //因为返回的数组所以,输出的是arrayRev(temp) 的内存地址
  6.                
  7.         }
  8. public static int[] arrayRev(int[] arr) {    //这里,用void 修饰表示无返回值类型,
  9. 与前面的打印语句冲突//可改为反回数组类
  10.                 for (int x = 0;x<arr.length/2 ;x++ ) {
  11.                         int temp = arr[x];
  12.                         arr[x] = arr[arr.length-1-x];
  13.                         arr[arr.length-1-x] = temp;
  14.                 }

  15.                 return arr;// 这里要有反回值
  16.         }
  17. }

复制代码

评分

参与人数 1技术分 +1 收起 理由
To + 1 赞一个!

查看全部评分

回复 使用道具 举报
这肯定不是完整代码!这时反转对不?你少了遍历的代码?
class Test2 {
        public static void main(String[] args) {
                int[] temp = {1,4,7,9,13,34,45,66,70};
            arrayRev(temp);
                for (int x = 0;x <temp.length;x++ ) {
                        System.out.println(temp[x]);
                }
       
        }
        public static void arrayRev(int[] arr){
                for (int x = 0;x<arr.length/2;x++) {
                        int temp = arr[x];
                        arr[x] = arr[arr.length-1-x];
                        arr[arr.length-1-x] = temp;
                }
        }
       
}
回复 使用道具 举报
你这段代码是有几处错误

class PersonDemo1 {
        public static void main(String[] args) {
                int[] temp = { 1, 4, 7, 9, 13, 34, 45, 66, 70 };
                System.out.println(arrayRev(temp));    //如果这样输出的话,输出的是这个数组的地址,
                                                                                 //如果想输出数组中的值,建议遍历输出或者Arrays.toString(arrayRev(temp));

        }

        public static int[] arrayRev(int[] arr) {   //既然前面定义在输出语言中,这个不能返回为void,应该返回int[]
                for (int x = 0; x < arr.length / 2; x++) {
                        int temp = arr[x];
                        arr[x] = arr[arr.length - 1 - x];
                        arr[arr.length - 1 - x] = temp;
                }
                return arr;     // 返回一个数组
        }
}  //最后这里少一个    }

评分

参与人数 1技术分 +1 收起 理由
To + 1 很给力!

查看全部评分

回复 使用道具 举报
楼主,你最大的问题就是打印数组要用遍历,不能直接打印,直接打印出来的只是地址值,楼上几位说的很清楚了。另外补充一种方法,希望对楼主有用。
class Demo1 {

        /**
         * @param args
         */
        public static void main(String[] args) {                //数组反转
                int[] arr ={1,2,3,4,5,6,7};
                revArray1(arr);                                                               
                revArray2(arr);
                printArray(arr);
        }

        private static void revArray1(int[] arr) {                //反转方法一
                for(int x=0;x<arr.length/2;x++){
                        int temp=arr[x];
                        arr[x]=arr[arr.length-1-x];
                        arr[arr.length-1-x]=temp;
                }
        }
        public static void revArray2(int[] arr){                //反转方法二
                for(int start=0,end=arr.length-1;start<end;start++,end--){
                        int temp=arr[start];
                        arr[start]=arr[end];
                        arr[end]=temp;
                }
        }
        public static void printArray(int[] arr) {                //打印方法:遍历
                for(int x=0;x<arr.length;x++){
                        System.out.print(arr[x]);
                }
        }

}
回复 使用道具 举报
谢谢各位的热情回答我知道怎么回事了
回复 使用道具 举报
public static void arrayRev(int[] arr) {
                 for (int x = 0;x<arr.length/2 ;x++ ) {
                         int temp = arr[x];
                         arr[x] = arr[arr.length-1-x];
                         arr[arr.length-1-x] = temp;
                 }
         }
以上方法参数是int型的数组,返回值为空void。所以主函数调用该函数的语句System.out.println(arrayRev(temp));实际上就是输出空,编译失败
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马