java程序疑问

classB{publicstaticvoidmain(Stringargs[]){inta[][]=newint[][]{{1,2,3},{4,5,6},{7,8,9}... class B{
public static void main(String args[]){
int a[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}};

int i=0;
do{
int j=0;
do{
int r=a[i][j];
a[i][j]=a[j][i];
a[j][i]=r;
j++;
}
while(j<a[i].length);
i++;
}
while(i<a.length);
System.out.print(a[0][2]);
}
}

为什么结果不是4
展开
 我来答
wxws234
2012-10-13
知道答主
回答量:10
采纳率:0%
帮助的人:7.7万
展开全部
结果是数组什么都没变。
程序进行中的交换是这样的:
a[0][0] <--> a[0][0]
a[0][1] <--> a[1][0]
a[0][2] <--> a[2][0]
a[1][0] <--> a[0][1]
a[1][1] <--> a[1][1]
a[1][2] <--> a[2][1]
a[2][0] <--> a[0][2]
a[2][1] <--> a[1][2]
a[2][2] <--> a[2][2]

交换的数全都被交换回去了,所以原数组没变,输出3
淡影疏秋
2012-10-13 · TA获得超过550个赞
知道小有建树答主
回答量:264
采纳率:0%
帮助的人:268万
展开全部
没有运行,目测是7.

这个函数其实是做了一个3阶矩阵的转置.也就是把第i行j列数字和第j行i列交换.
开始a[2][0]是7,交换之后a[0][2]应该就是7
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-13
展开全部
目测是换了2次 ,本来a[0][2]换成了a[2][0]为7的,后有换会回了3。 你可以用debug测试观察r、i、j的变化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式