总结一个2D数组
鉴于我目前的程序,我希望在用户输入所有值后计算每列和每行的总和。 我当前的代码似乎只是将数组的值加倍。 这不是我想要做的。 例如,如果用户输入具有以下值的3×3矩阵1 2 3 2 3 4 3 4 5,它将看起来像我在下面的程序中格式化它。 (见顶部评论)
然后我还想修改代码,以便它挑出对角线并将其打印出来,以便输出显示:主对角线:{1,3,5}
您的代码没问题,但最后要对列进行求和,您应该更改行而不是列。 像这样:
System.out.println("\n"); for( int column = 0; column < columns; column++) { for(int row = 0; row < rows; row++) { array2d[row][column] = array2d[row][column] + array2d[row][column]; System.out.print(array2d[row][column] + " "); } System.out.println(); }
欢迎来到Java世界。 首先让我们剖析你的“加倍arrays”代码。
array2d[row][column] = array2d[row][column] + array2d[row][column];
这行代码就是问题所在。 您应用的循环倾向于更新矩阵中每个元素的值。 例如,假设
array2d[1][2]=2
因此上面提到的代码就是这样做的
array2d[1][2]= array2d[1][2]+array2d[1][2];
这基本上使数组的值加倍。
你应该尝试这样的事情:
//To print the values of rows for(int i=0;i
以下代码将帮助您计算列的值。
//To print values of columns for(int i=0;i
尝试为对角线制作代码。这非常简单。
提示:主对角线的行号和列号相同。
PS - 将scan.close()
添加到您的代码中。 始终关闭此类连接以防止资源泄漏。
对于主对角线
for(int i=0;i
- 编译日期和时间
- InvalidKeyException java.security.InvalidKeyException:没有安装的提供程序支持此键:(null)
- 有人可以解释Java中的void返回类型吗?
- 如何在java中传递命令行参数
- Spring HATEOAS ControllerLinkBuilder方法显着增加响应时间
- Java与javascript正则表达式匹配
- 关于自动装箱和对象相等/身份的Java问题
- 在Servlet中使用org.json会导致java.lang.ClassNotFoundException:org.json.JSONException
- 如何保存常量更新,最后将输出保存为XMLModifier文件