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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 叶燕希 中级黑马   /  2015-5-23 14:38  /  323 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package ye;

public class Ye_4 {
   public static void main(String args[]){
       int[] arr={2,9,5,3};
       maopao(arr);
              System.out.print(arr);
   }
   public static void maopao(int[] arr){
       for (int x=0;x<arr.length-1;x++){
           for(int y=0;y<arr.length-x-1;y++){
               //-x 让没一次比较次数减少。-1为了避免角标越界
               if(arr[y]<arr[y+1]){
                   int temp=arr[y+1];
                   arr[y+1]=arr[y];
                   arr[y]=temp;
               }
           }
       }
     
   }
}

为什么输出是乱码的 [I@de6ced  程序也没提示错误啊


评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

4 个回复

倒序浏览
你打印的内存地址值,打印数组应该遍历输出,一盘定义一个函数,调用即可。
public static void printArray(int[] arr)
{
  System.out.print("[");
  for(int x= 0; x<arr.length; x++)
  {
   if(x!=arr.length-1)
    System.out.print(arr[x]+", ");
   else
    System.out.println(arr[x]+"]");
  }
}
回复 使用道具 举报
wangkai 发表于 2015-5-23 16:34
你打印的内存地址值,打印数组应该遍历输出,一盘定义一个函数,调用即可。
public static void printArray ...

那为什么那个会乱码的呢?输出数组一定要遍历吗
回复 使用道具 举报
你直接打印数组当然是地址值,可以在弄一个遍历的方法就可以了,当然也可以直接打印arr[索引]
回复 使用道具 举报
这格式内存地址,不是乱码。数组是引用型变量
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马