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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 乔攀 中级黑马   /  2012-11-27 22:23  /  1579 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 乔攀 于 2012-11-27 23:07 编辑

定义一个数组 例如:int[] arr = new int[] {45,23, 68, 54, 77 },完成以下功能
(1)        实现输出数组中元素为奇数的数据。
class Demo
{
        public static void main(String [] args)
                {
                 int[] arr = new int[] {45,23, 68, 54, 77 };
                  int[]c=cha(arr);
                 // System.out.println(c);
                }

        public static int []  cha(int [] arr)
        {        
               
                for (int i=0;i<arr.length ;i++ )
                {
                        if (arr%2==1)
                        {

                        System.out.print(arr+" ");        
                        }
                }
        
                return arr;               
        }
}
为什么输出结果总是带着内存中的地址?

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

3 个回复

倒序浏览
我跑了一下发现
System.out.println(c); 你打印了c,c 是你new 出来的地址,  所以出现的地址。。
我帮你改好了
  1. public class Demo {
  2.         public static void main(String[] args) {
  3.                 int[] arr = new int[] { 45, 23, 68, 54, 77 };
  4.                 cha(arr);
  5.                 //System.out.println(cha(arr) + " **");
  6.         }
  7.         public static int[] cha(int[] arr) {

  8.                 for (int i = 0; i < arr.length; i++) {
  9.                         if (arr[i] % 2 == 1) {
  10.                                 System.out.print(arr[i] + " ");
  11.                         }
  12.                 }
  13.                 return arr;
  14.         }
  15. }
复制代码

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 张海涛 于 2012-11-27 23:05 编辑

如果你需要cha()这个函数返回的值你在主函数main里面直接调用就可以了,而你是把cha函数的返回值(是一个数组)赋值给数组类型的c,然后你打印了c
所以会将cha函数的值和c的类型一并返回给你!
class Demo
{
        public static void main(String[] args)
        {
                int[] arr = new int[] {45,23, 68, 54, 77 };
                //int[] c = cha(arr);
                //System.out.println(c);
                cha(arr);

        }

        public static int[] cha(int[] arr)
        {
                for (int i=0;i<arr.length ;i++ )
                {
                        if (arr%2==1)
                        {
                                System.out.print(arr+" ");
                        }
                }
                return arr;
        }
}

评分

参与人数 1技术分 +1 收起 理由
崔政 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
哦 明白了 谢谢两位!

点评

我也喜欢看越狱兔。。  发表于 2012-11-27 23:28
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马