| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 744 人关注过本帖
标题:为什么会提示数组下标越界呢
只看楼主 加入收藏
linghuazaii
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-9-20
结帖率:0
收藏
已结贴  问题点数:0 回复次数:2 
为什么会提示数组下标越界呢

public class matrix {

    /**
     * @param args
     */
   
    public static int max(int table[])
    {
        int m=table[0];
        for(int i=1;i<table.length;i++)
        {
            if(table[i]>m)
                m=table[i];
        }
        return m;
    }
   
    public static int min(int table[])
    {
        int n=table[0];
        for(int i=0;i<table.length;i++)
        {
            if(table[i]<n)
                n=table[i];
        }
        return n;
    }
   
    public static int indexOf(int table[],int key)
    {
        int index=-1;
        for(int i=0;i<table.length;i++)
        {
            if(key==table[i])
            {
                index=i+1;
                break;
            }
        }
        return index;
    }
   
    public static void sort(int table[])
    {
        for(int i=table.length-1,number=0;i>=1;i--)
            for(int j=0;j<i;j++)
            {
                if(table[j]>table[j+1])
                {
                    number=table[j+1];
                    table[j+1]=table[j];
                    table[j]=number;
                }
            }
    }
   
    public static boolean isSorted(int table[])
    {
        for(int i=table.length-1;i>=0;i--)
        {
            if(table[i]<table[i-1])
                return false;
        }
        return true;
    }
   
    public static void print(int table[])
    {
        for(int i=0;i<table.length;i++)
            System.out.print(table[i]+"\t");
        System.out.println();
    }
   
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int matrix[]={9,5,13,18,19,5,3,2,7,9,6,24,21};
        System.out.println("the max number is: "+max(matrix));
        System.out.println("the min number is: "+min(matrix));
        if(indexOf(matrix,5)==-1)
            System.out.println("the number is not in the matrix!");
        else
        {
            System.out.println("the index of the number is: "+indexOf(matrix,5));
        }
        System.out.print("the number in matrix are:");        print(matrix);
        sort(matrix);
        System.out.println("the matrix is sorted?"+"\t"+(isSorted(matrix)?"YES":"NO"));
        System.out.print("the number in matrix are:");        print(matrix);
    }

}
已解决 不要去运行程序 看你眼力如何了 能找出问题不
搜索更多相关主题的帖子: public 
2011-09-20 21:58
gwl3323405
Rank: 2
等 级:论坛游民
帖 子:22
专家分:46
注 册:2010-10-31
收藏
得分:5 
说实话,真没耐心看,希望LZ下次把代码格式化一下放在之间。另:为什么要重写排序方法呢,Java自带的Arrays.sort(matrix);不能满足你的需要吗?重写的方法效率不见得高吧。
2011-09-23 00:07
qq181982453
Rank: 2
等 级:论坛游民
帖 子:45
专家分:16
注 册:2010-6-10
收藏
得分:0 
public static boolean isSorted(int table[])
    {
        for(int i=table.length-1;i>=0;i--)
        {
            if(table[i]<table[i-1])
                return false;
        }
        return true;
    }

table[i-1]当i等于0的时候,table[-1]
2011-09-30 16:50
快速回复:为什么会提示数组下标越界呢
数据加载中...
 
   



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

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