黑马程序员技术交流社区
标题:
帮我解惑求帮助
[打印本页]
作者:
惠晖
时间:
2012-10-28 00:30
标题:
帮我解惑求帮助
/*
给定指定数组按照从小到大排列
*/
class ArrayTest6
{
public static void selectSort (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 temp =arr[x];
arr[x] =arr[y] ;
arr[y] =temp;
}
}
}
}
public static void main(String[] args)
{
int[] arr ={5,1,6,4,2,8,9};
//排序
selectSort(arr);
}
}
为什么可以编译 却不能运行, 最好详细点解释为什么 提前thanks
作者:
黑马刘向阳
时间:
2012-10-28 00:46
循环这里是不是重复定义了呢? int temp =arr[x];
arr[x] =arr[y] ;
arr[y] =temp;
作者:
林剑
时间:
2012-10-28 00:46
少了输出语句啊。
public static void main(String[] args)
{
int[] arr ={5,1,6,4,2,8,9};
//排序
selectSort(arr);
for (int i= 0;i<arr.length-1 ;i++ )
{
if (i<arr.length-2)
System.out.print(arr[i]+",");
else
System.out.print(arr[i]);
}
}
作者:
聆听
时间:
2012-10-28 04:44
正确方法:
class ArrayTest6
{
public static void selectSort (int[] arr)
{
for (int x=0; x<arr.length; x++ )
{
for (int y=x+1;y<arr.length-x-1; y++ )
{
////每个数比较n次,如果values[y]>values[y+1]成立,否则交换。
if (arr[x]>arr[y+1])
{
int temp =arr[x];
arr[x] =arr[y+1] ;
arr[y+1] =temp;
}
}
}
}
public static void main(String[] args)
{
int[] arr ={5,1,6,4,2,8,9};
//排序
selectSort(arr);
for(int i=0; i<arr.length; ++i){
System.out.println("index:"+i+"value:"+values
);
}
}
}
作者:
徐升兴
时间:
2012-10-28 07:57
可以运行,只是你没有写输出语句;
求最大:System.out.println(arr[arr.length-1]);//添加到 selectSort 方法最外面。
求整个数组:循环取出。
for(int i=0; i<arr.length; ++i)
{
System.out.println(arr[i]);
}
作者:
442851994
时间:
2012-10-28 08:53
main方法中用for遍历数组输出 或者在selectSort 中遍历数组输出 没有输出语句 编译能通过 运行也能通过 但是不写输出语句 你看不到结果 就误以为是不能运行。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2