public class Example{
  public static void main(String args[]){
  int a[]={3,4,1,2,-6};
  for(int i=0;i<=a.length;i++)  {
for(int j=i+1;j<=a.length;j++){
            if(a[j]<a[i]){
            int n=a[j];a[j]=a[i];a[i]=n;
            }
        }
  }
  System.out.printf("%d/n%d/n%d/n%d/n%d/n",a[0],a[1],a[2],a[3],a[4]);
}
}

解决方案 »

  1.   

    总是提示Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
            at Example.main(Example.java:6)
           Java Result: 1
    大家帮我这个菜鸟看看好么?谢谢咯
      

  2.   

    for(int i=0;i<a.length;i++) {
    for(int j=i+1;j<a.length-1;j++){
      if(a[j]<a[i]){
      int n=a[j];a[j]=a[i];a[i]=n;
      }
      }冒泡不能下标越界;没几个值,lz自己在脑子运行也是越界啊
      

  3.   

     for(int i=0;i<a.length-1;i++) {
    for(int j=i+1;j<a.length;j++){
      

  4.   

    public class Example{
    public static void main(String args[]) {
    int a[] = { 3, 4, 1, 2, -6 };
    for (int i = 0; i <= a.length-1; i++) {
    for (int j = i + 1; j <= a.length-1; j++) {
    if (a[j] < a[i]) {
    int n = a[j];
    a[j] = a[i];
    a[i] = n;
    }
    }
    System.out.print(a[i]+"/");
    }

    }
    }   
    你的
    for (int i = 0; i <= a.length-1; i++)内,“i <= a.length-1"需要-1,因为数组下标是从0开始的。
      

  5.   

    public class Example{
      public static void main(String args[]){
      int a[]={3,4,1,2,-6};
      for(int i=0;i<a.length;i++) {
    for(int j=i+1;j<a.length;j++){
      if(a[j]<a[i]){
      int n=a[j];a[j]=a[i];a[i]=n;
      }
      }
      }
      System.out.printf("%d/n%d/n%d/n%d/n%d/n",a[0],a[1],a[2],a[3],a[4]);
    }
    }