java 函数怎么返回二维数组(改一下我的代码)

哪里错,怎么改,为什么。publicclassf4{publicstaticint[][]f(inta[][],intb[][],intans[][]){ans[0][0... 哪里错,怎么改,为什么。

public class f4
{
public static int[][] f(int a[][],int b[][],int ans[][])
{

ans[0][0]=a[0][0]*b[0][0]+a[0][1]*b[1][0];
ans[1][0]=a[1][0]*b[0][0]+a[1][1]*b[1][0];
ans[0][1]=a[0][0]*b[0][1]+a[0][1]*b[1][1];
ans[1][1]=a[1][0]*b[0][1]+a[1][1]*b[1][1];
return ans;

}

public static void main(String[] args)
{

int[][] a = {{0,1},{1,1}};
int[][] b = {{0,1},{1,1}};
int[][] ans =new int[1][1];
f(a,b,ans);
}
}
展开
 我来答
历盆郁7
2013-10-14 · TA获得超过4277个赞
知道大有可为答主
回答量:1795
采纳率:100%
帮助的人:938万
展开全部

数组越界了,换成这个

int[][] ans = new int[2][2];

关于接收,

由于java是值传递,那么你在调用了f方法后,可以直接操作ans,你看看前后的变化

        System.out.println(Arrays.deepToString(ans));
        f(a, b, ans);
        System.out.println(Arrays.deepToString(ans));


如果你非要接收,也可以

        System.out.println(Arrays.deepToString(ans));
        ans = f(a, b, ans);
        System.out.println(Arrays.deepToString(ans));

两者效果是一样的

百度网友5c69cfc
推荐于2017-10-04 · TA获得超过238个赞
知道小有建树答主
回答量:325
采纳率:100%
帮助的人:225万
展开全部
//  java.lang.ArrayIndexOutOfBoundsException
int[][] ans =new int[2][2]; // 数组不够大
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友29f6bbc
2013-10-14
知道答主
回答量:22
采纳率:0%
帮助的人:26.2万
展开全部
你数组长度错了:int[][] ans =new int[2][2];
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0955986aa
2013-10-14 · TA获得超过197个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:195万
展开全部
u need to initialize a and b in your main. (ie. allocate memory for variable a and b)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式