CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

这个问题如何解?

楼主flikg(k的传说)2001-11-06 22:32:11 在 Java / J2SE / 基础类 提问

我编了个二分查找法的程序,输入一个数,在给定的数组内查找,若输入的数字  
  超过数组内最大的数字,会出现如下错误:  
  Exception   in   thread   "main"   java.lang.ArrayIndexOutOfBoundsException  
                  at   search.main(search.java:31)  
  源程序如下:  
  //=================search.java=================  
  import   javax.swing.JOptionPane;  
  public   class   search    
  {  
          static   int[]   bubs(int[]   a)  
  {   int   t;  
  for   (int   b=0;b<a.length   ;b++   )  
  {  
        for   (int   c=0;c<a.length-b-1   ;c++   )  
        {  
            if   (a[c]>a[c+1])  
            {  
        t=a[c];a[c]=a[c+1];a[c+1]=t;  
            }  
        }  
  }  
  return   a;  
  }  
  public   static   void   main(String   args[])    
  {  
  String   s=JOptionPane.showInputDialog("输入一个整数:");  
  int   key=Integer.parseInt(s);  
  int   a[]={46,21,25,32,396,47,19,1000,123,54,13};  
  int   i=0,j=a.length,k=0,n=0,kk=2;  
  a=bubs(a);  
                   
                    while   (i<=j)  
                    {    
        n++;  
        k=(i+j)/2;  
        if   (key==a[k])      
        {  
            kk=1;      
                          break;  
        }  
          else   if   (key<a[k])      
              j=k-1;          
          else    
            i=k+1;  
   
                    }  
    if   (kk!=2)  
     
  JOptionPane.showMessageDialog(null,  
                                                                  "要查找的数字为:"+key+"\n"+"查找的次数:"+n+"\n"+"要查找的数字在数组的位置为:"+k,  
  "标题:查找成功!",  
  JOptionPane.PLAIN_MESSAGE);  
                    else  
                            JOptionPane.showMessageDialog(null,  
                                                                  "要查找的数字为:"+key+"\n"+"查找的次数:"+n+"\n"+"要查找的数字不存在",  
  "标题:找不到!",  
  JOptionPane.PLAIN_MESSAGE);  
             
       
  System.exit(0);  
  }  
  }  
   
  问题点数:28、回复次数:2Top

1 楼flikg(k的传说)回复于 2002-01-01 15:45:21 得分 0

no   manTop

2 楼hardas(孤魂一笑)回复于 2002-01-01 16:17:02 得分 28

java.lang.ArrayIndexOutOfBoundsException  
  最大的可能就是访问超过数组范围!你仔细找找看!  
  注意:String[]   arrystr=new   String[5];  
  是从arrystr[0]-arrystr[4]   ,arrystr[5]出错Top

相关问题

  • 这个vb如何解决?
  • 这个问题如何解?
  • 这个如何解决??
  • 这个问题如何解决???
  • 如何解决这个绘图问题?
  • 如何解决这个bios的问题
  • 这个问题该如何解决?急!!!!
  • 如何理解这个输出?
  • 如何用VB解决这个问题??
  • 这个问题如何解决?

关键词

  • 数字
  • search
  • 数组
  • 查找
  • 输入
  • 如下
  • main

得分解答快速导航

  • 帖主:flikg
  • hardas

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo