weixin_35942501
2017-03-22 02:47
采纳率: 100%
浏览 2.9k
已采纳

java数组函数调用,谢谢

我的二维数组具体的个数在键盘输入,怎么在输入n和m的值后调用函数,谢谢图片

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • crazy_monky 2017-03-22 03:37
    已采纳

    原先还没注意,原来你的s()方法里面本来就有错误,会导致数组越界。如果n=5,m=6,你取值顶多只能取a[4][5],而你直接把n和m传进去了。

    毛病太多了,你可以把代码修改一下:
    public class AA{//类名最好还是用大写代替,养成好习惯
    int n,m;
    int a[][];
    public AA(Scanner in){
    n = in.nextInt();
    m = in.nextInt();
    a = new int[n][m];
    }
    public void s(){
    for(int i=0;i<n;i++){
    for(int j=0;j<m;j++){
    a[i][j]=1;
    System.out.println(a[i][j]);//这样就会输出好多1了。
    }
    }
    }

        public void main(String[] args){
                Scanner in = new Scanner(System.in);
                AA aa = new AA(in);
                aa.s();
        }
    

    }

    点赞 评论
  • 慕久安 2017-03-22 03:03

    没看懂你的意思 不知道你是不是想在键盘输入二维数组的大小的m,n ,如果是的话 你可以给个二维数组的初始化函数 init( int m,int n){
    a[][] =new int[m][n]
    }就可以了

    点赞 评论
  • crazy_monky 2017-03-22 03:16

    方法一:在void s()方式前加上static,在main方法最后一行添加s();
    方法二:在main方法最后一行添加aa a_a = new aa(); a_a.s();

    另外,你只在main方法中给m与n赋值了,并没有给二维数组赋值(二维数组的长度n、m还是原先的0),所以你按上面写的方法直接运行的话,
    肯定是会报数组越界错误的。

    点赞 评论
  • shen_wei 2017-03-22 03:58
    点赞 评论
  • weixin_35942501 2017-03-22 22:16

    谢谢各位了,新手上路,挺难的

    点赞 评论

相关推荐 更多相似问题