黑马程序员技术交流社区
标题:
请看看这段代码错在哪里
[打印本页]
作者:
完美恋爱
时间:
2013-10-27 13:39
标题:
请看看这段代码错在哪里
本帖最后由 完美恋爱 于 2013-10-27 13:49 编辑
class Demo
{
public static void sort(int[] arr)
{
for(int x = 0; x < arr.length-1; x++)
{
for(int y = x+1; y < arr.length; y++)
{
if(arr[x] > arr[y])
{
int z = arr[x];
arr[x] = arr[y];
arr[y] = arr[x];
}
}
}
}
public static void array(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]+"]");
}
}
public static void main(String[] args)
{
int[] arr = {3,1,7,5,2,8,4,0,6,9};
array(arr);
sort(arr);
array(arr);
}
}
请问这段代码错在哪里啦?
为什么打印出来的是 [3,1,7,5,2,8,4,0,6,9]
[0,0,0,0,0,0,0,0,6,9]
作者:
张运
时间:
2013-10-27 13:45
class Demo
{
public static void sort(int[] arr)
{
for(int x = 0; x < arr.length-1; x++)
{
for(int y = x+1; y < arr.length; y++)
{
if(arr[x] > arr[y])
{
int z = arr[x];
arr[x] = arr[y];
//arr[y] = arr[x];//代码错误
arr[y] = z;
}
}
}
}
public static void array(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]+"]");
}
}
public static void main(String[] args)
{
int[] arr = {3,1,7,5,2,8,4,0,6,9};
array(arr);
sort(arr);
array(arr);
}
}
复制代码
作者:
linjl_ll
时间:
2013-10-27 13:47
哥,你的这段代码if(arr[x] > arr[y])
{
int z = arr[x];
arr[x] = arr[y];
arr[y] = arr[x];
}
是想实现交换吧?逻辑写错了,应该是:
a[y]=z;
作者:
呆萌
时间:
2013-10-27 13:47
变量互换那边写的代码有问题!正确代码如下
int z = arr[x];
arr[x] = arr[y];
arr[y] = z;
QQ截图20131027134537.jpg
(10.87 KB, 下载次数: 1)
下载附件
2013-10-27 13:46 上传
作者:
完美恋爱
时间:
2013-10-27 13:48
张运 发表于 2013-10-27 13:45
谢谢啦!没想到竟然是那里出错了,失败啊
作者:
linjl_ll
时间:
2013-10-27 13:48
不知道错哪了,可以用调试啊。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2