不能理解啊 进来看看吧

黄昏和四季 2019-08-12 12:28:52
第一张图的答案是错的 但我不怎么清楚其错误的缘由,望指点 第一张图的两根红线加起来的效果不就等于第二张图的红线吗,按逻辑说应该是等价的,但运行出来的结果却不同,有理解其原因的人吗
...全文
91 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
guishuanglin 2019-08-12
  • 打赏
  • 举报
回复
楼主, 加油吧, 要看一下java的 基础知识 进入网站, 或者看书: https://www.runoob.com/java/java-variable-types.html
淡青の月 2019-08-12
  • 打赏
  • 举报
回复
第一张图,给你捋一下
原数组{{1,2,3},
{4,5,6},
{7,8,9}}
i=0,j=0:arr[0][0] = 1;
i=0,j=1:arr[0][1] = 4;
i=0,j=2:arr[0][2] = 7;
数组变为{{1,4,7},
{4,5,6},
{7,8,9}}
i=1,j=0:arr[1][0] = 4;
i=1,j=1:arr[1][1] = 5;
i=1,j=2:arr[1][2] = 8;
数组变为{{1,4,7},
{4,5,8},
{7,8,9}}
i=2,j=0:arr[2][0] = 7;
i=2,j=1:arr[2][1] = 8;
i=2,j=2:arr[2][2] = 9;
最终数组变为{{1,4,7},
{4,5,8},
{7,8,9}}
循环中改变了数组中的一些值
第二张图,可以现将二维数组看成矩阵,代码就是将数组纵向一列一列的输出
guishuanglin 2019-08-12
  • 打赏
  • 举报
回复
把 i 定义在 for里面就可以了, 你不能定义为共用变量.

// 把 i 定义在 for里面就可以了, 你不能定义为共用变量.
for(int i=0; i<100; i++) {
			//
}
weixin_40290083 2019-08-12
  • 打赏
  • 举报
回复
引用 12 楼 qq_44862708 的回复:
[quote=引用 11 楼 weixin_40290083的回复:]不知道你是要对矩阵进行转换,还是把矩阵按另外的方式输出,如果要转换,那么显然图一的程序是错误了,图二虽然输出正确,但是对矩阵并没有进行转换。
第二张图貌似转换了[/quote] 你的arr中的数据没有变化,只是你使用循环控制它的输出行列先后顺序罢了。
黄昏和四季 2019-08-12
  • 打赏
  • 举报
回复
引用 11 楼 weixin_40290083的回复:
不知道你是要对矩阵进行转换,还是把矩阵按另外的方式输出,如果要转换,那么显然图一的程序是错误了,图二虽然输出正确,但是对矩阵并没有进行转换。
第二张图貌似转换了🌚
weixin_40290083 2019-08-12
  • 打赏
  • 举报
回复
不知道你是要对矩阵进行转换,还是把矩阵按另外的方式输出,如果要转换,那么显然图一的程序是错误了,图二虽然输出正确,但是对矩阵并没有进行转换。
黄昏和四季 2019-08-12
  • 打赏
  • 举报
回复
引用 8 楼 weixin_40290083的回复:
第一图中就该是两个值的交换,但是你只是改变了一部分,另一部分没有改变。
就是说第一张图输出错误 第二张图是正确的 就是交换位置
黄昏和四季 2019-08-12
  • 打赏
  • 举报
回复
就是说第一张图输出错误 第二张图是正确的 就是交换位置
weixin_40290083 2019-08-12
  • 打赏
  • 举报
回复
第一图中就该是两个值的交换,但是你只是改变了一部分,另一部分没有改变。
weixin_40290083 2019-08-12
  • 打赏
  • 举报
回复
看不明白你的程序要实现什么功能,第一图是把二维数据中的一些值改变成另一部分的值,但是不是交换。第二图是先按列后按行输出了。
黄昏和四季 2019-08-12
  • 打赏
  • 举报
回复
引用 3 楼 guishuanglin的回复:
楼主, 加油吧, 要看一下java的 基础知识 进入网站, 或者看书: https://www.runoob.com/java/java-variable-types.html
好 我去看看 Java学到后面来了 但放假没看 基础不怎么清楚了 打脑壳
黄昏和四季 2019-08-12
  • 打赏
  • 举报
回复
引用 2 楼 淡青の月的回复:
第一张图,给你捋一下
原数组{{1,2,3},
{4,5,6},
{7,8,9}}
i=0,j=0:arr[0][0] = 1;
i=0,j=1:arr[0][1] = 4;
i=0,j=2:arr[0][2] = 7;
数组变为{{1,4,7},
{4,5,6},
{7,8,9}}
i=1,j=0:arr[1][0] = 4;
i=1,j=1:arr[1][1] = 5;
i=1,j=2:arr[1][2] = 8;
数组变为{{1,4,7},
{4,5,8},
{7,8,9}}
i=2,j=0:arr[2][0] = 7;
i=2,j=1:arr[2][1] = 8;
i=2,j=2:arr[2][2] = 9;
最终数组变为{{1,4,7},
{4,5,8},
{7,8,9}}
循环中改变了数组中的一些值
第二张图,可以现将二维数组看成矩阵,代码就是将数组纵向一列一列的输出
啊哈哈 懂了 因为前面变化了 后面结果就不一样了 谢谢啦
黄昏和四季 2019-08-12
  • 打赏
  • 举报
回复
引用 1 楼 guishuanglin的回复:
把 i 定义在 for里面就可以了, 你不能定义为共用变量.

// 把 i 定义在 for里面就可以了, 你不能定义为共用变量.
for(int i=0; i<100; i++) {
			//
}
定义了的 刚开始就是这样子写的 结果一模一样 刚开始我在想是不是局部变量的有效范围的问题 后来换成我发的这种 发现不是这个原因

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧