当前位置:编程学习 > JAVA >>

小弟写了一段java程序 不知道出错在哪 希望能告诉我

class xzpx
{
public static void paixu(int[] a )
{
for(int x = 0;x<a.length - 1;x++)
{
for(int y = 0;y<a.length;y++)
{
if(a[x]>a[y])
{
int temp =a[x];
a[x] = a[y];
a[y] = temp; 
}
}
}
}
public static void main(String[] args)
{
int[] s ={1,9,8,7,5,6,78,98,45,65,12,35,95,556,2};
paixu(s);
System.out.println(s);//打印的是S的地址,应该打印的是数组排序之后的结果
}
} --------------------编程问答-------------------- 1 在文件前面加一句:

import java.util.Arrays;
2 把下面这句
System.out.println(s); 改成:System.out.println(Arrays.toString(s)); 
就好了。

--------------------编程问答--------------------
引用 1 楼  的回复:
1 在文件前面加一句:

import java.util.Arrays;
2 把下面这句
System.out.println(s); 改成:System.out.println(Arrays.toString(s)); 
就好了。
+1,写个for循环取出a元素也行,Arrays.toString也是这么实现的 --------------------编程问答-------------------- 可以用楼上的数组拷贝的方法,也可以用toStirng()将他的逻辑地址转换成你想要的数 --------------------编程问答-------------------- 看错了。用Array.copyOf()把他拷贝进来。
package day04;

import java.sql.Array;

public class Paixu {

 
 public static int[] paixu(int[] a )
 {
 for(int x = 0;x<a.length - 1;x++)
 {
 for(int y = 0;y<a.length;y++)
 {
 if(a[x]>a[y])
 {
 int temp =a[x];
 a[x] = a[y];
 a[y] = temp;  
    
 }
 }
 } int[] b = new int[a.length];
     System.arraycopy(a, 0, b, 0, a.length);
     return b;
 }

 public static void main(String[] args)
 {
 int[] s ={1,9,8,7,5,6,78,98,45,65,12,35,95,556,2};
 int[] b =new int[s.length];
 b = paixu(s);
 for(int i = 0;i<b.length;i++){
 System.out.println(b[i]);}//打印的是S的地址,应该打印的是数组排序之后的结果
 }
 } 
   --------------------编程问答-------------------- 我理解就是因为你那个public static void paixu(int[] a )方法无返回值,所以数组a虽然排序了,但是没有返回给某个数组
--------------------编程问答-------------------- class Test1 {
public static void paixu(int[] a) {
for (int x = 0; x < a.length; x++) {
                //楼主可以将第二轮内层的比较从外层直接开始,y=x
for (int y = x; y < a.length; y++) {
if (a[x] > a[y]) {
int temp = a[x];
a[x] = a[y];
a[y] = temp;
}
}
}
}

public static void main(String[] args) {
int[] s = { 1, 9, 8, 7, 5, 6, 78, 98, 45, 65, 12, 35, 95, 556, 2 };
paixu(s);
for(int i = 0; i < s.length; i++)
{
System.out.println(s[i]);// 打印的是S的地址,应该打印的是数组排序之后的结果
}
}

}
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,