| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1142 人关注过本帖
标题:编译没有问题,执行出现了问题(高手帮帮忙啊!)
只看楼主 加入收藏
mx250052
Rank: 2
等 级:论坛游民
帖 子:61
专家分:25
注 册:2009-3-1
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:16 
编译没有问题,执行出现了问题(高手帮帮忙啊!)
E:\JAVA\Test01>javac  BubbleSort.java

E:\JAVA\Test01>java BubbleSort
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
        at BubbleSort.bubbleSort(BubbleSort.java:17)
        at BubbleSort.main(BubbleSort.java:6)
原程序在这:
程序代码:
public class BubbleSort
{
   public static void main(String[] args)
   {
     int x1[]={10,60,30,20};
     bubbleSort(x1);//对x1数组进行冒泡排序
     display(x1);//对x1数组进行输出显示
     System.out.println();//换行
   }
   public static void bubbleSort(int x[])
   {
     int temp;
     for(int i=1;i<x.length;i++)//比较的趟次
     {
        for(int j=0;j<x.length;j++)//在某趟中逐对比较
        {
          if(x[j]<x[j+1])//从大到小排序
          {
             temp=x[j];
             x[j]=x[j+1];
             x[j+1]=temp;
          }
        }
     }
   }
   
   public static void display(int y[])
   {
      for(int i=0;i<y.length;i++)
         System.out.print(y[i]+"  ");
   }
}
搜索更多相关主题的帖子: 编译 
2009-07-28 10:31
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:12 
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
属于数组下标越界
检查元素长度是不是过头了

C#超级群 74862681,欢迎大家的到来!
2009-07-28 15:32
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
这样好象可以解决:  for(int j=0;j<x.length-1;j++)//为什么就不要我说了吧想下就知

[[it] 本帖最后由 gameohyes 于 2009-7-28 16:54 编辑 [/it]]

C#超级群 74862681,欢迎大家的到来!
2009-07-28 15:33
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
我这可以编译通过。结果是:60  30  20  10  
    你试下,看可以不。是你要的结果不。

C#超级群 74862681,欢迎大家的到来!
2009-07-28 15:38
封闭
Rank: 9Rank: 9Rank: 9
来 自:广东省汕头市
等 级:蜘蛛侠
威 望:1
帖 子:501
专家分:1084
注 册:2007-9-14
收藏
得分:8 
public class BubbleSort
{
   public static void main(String[] args)
   {
     int x1[]={10,60,30,20};
     bubbleSort(x1);//对x1数组进行冒泡排序
     display(x1);//对x1数组进行输出显示
     System.out.println();//换行
   }
   public static void bubbleSort(int x[])
   {
     int temp;
     for(int i=1;i<x.length;i++)//比较的趟次
     {
        for(int j=0;j<x.length-1;j++)//在这里,j的长度要小于原来长度-1
        {
          if(x[j]<x[j+1])//从大到小排序
          {
             temp=x[j];
             x[j]=x[j+1];
             x[j+1]=temp;
          }
        }
     }
   }
   
   public static void display(int y[])
   {
      for(int i=0;i<y.length;i++)
         System.out.print(y[i]+"  ");
   }
}
2009-07-28 16:42
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
你早点来嘛,真是的。哼

C#超级群 74862681,欢迎大家的到来!
2009-07-28 16:49
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
我说的乱七八糟的  我看书去咯

C#超级群 74862681,欢迎大家的到来!
2009-07-28 16:50
封闭
Rank: 9Rank: 9Rank: 9
来 自:广东省汕头市
等 级:蜘蛛侠
威 望:1
帖 子:501
专家分:1084
注 册:2007-9-14
收藏
得分:0 
其实楼主也可以用自带的方法去排序
先导入: import java.util.*;
public class BubbleSort{

    public static void main(String[] args){
         int x1[]={10,60,30,20};
         int i;
         Arrays.sort(x1);
         System.out.println("排序后是:");
         for(i=x1.length-1;i>=0;i++){
             System.out.print(x1[i]+"  ");
         }
    }
}

这样可大大减少代码。

[[it] 本帖最后由 封闭 于 2009-7-28 16:58 编辑 [/it]]
2009-07-28 16:54
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
哈哈。我修改了,别个不知咯。ohye

C#超级群 74862681,欢迎大家的到来!
2009-07-28 16:54
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
以下是引用封闭在2009-7-28 16:54的发言:

         Arrays.sort(x1);  
     ...


    Arrays.sort(x1);  //可以起到什么样的作用???输出语句后的FOR是怎么判断的啊。
2009-07-28 16:59
快速回复:编译没有问题,执行出现了问题(高手帮帮忙啊!)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036132 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved