java 矩阵的对角线
Diagonals with java Matrices
目前正在尝试打印输出为:
的矩阵
0 0 0 0 4
0 0 0 3 0
0 0 2 0 0
0 1 0 0 0
0 0 0 0 0
这是我目前的代码:
for(int row=0; row < matrix.length; row++)
for(int col = 0; col < matrix[row].length; col++)
if(row+col == matrix[row].length)
显然不完整。我什至不确定代码背后的逻辑是否正确。
假设总是平方 matrix.This 应该构造你的矩阵。
for(int row=0; row < matrix.length; row++)
{
//System.out.println("");
for(int col = 0; col < matrix.length; col++)
{
//eg [0][4] = 4 on valid condition [5-0-1] == 4
if(matrix.length-row-1 == col)
{
matrix[row][col] = col;
}
//System.out.print(matrix[row][col]);
}
}
要在同一步骤中打印,只需删除打印注释
这是应该有效的代码(假设矩阵总是正方形):
for(int row=0; row < matrix.length; row++){
for(int col = 0; col < matrix[row].length; col++){
if(row + col == matrix.length - 1){
matrix[row][col] = col;
System.out.print(col+ " "); // Print value
} else {
matrix[row][col] = 0; // Set value
System.out.print("0 ");
}
}
System.out.println("");
}
我们在条件中减去 1,因为 length-1 给了我们最后一个索引。 (提醒索引从 0 开始到长度 -1)
请注意,int
数组中的默认值为 0
,因为 int
变量的默认值为 0
。因此,您只需更改所需对角线上的值,其余值保持原样即可。
按如下操作:
public class Main {
public static void main(String[] args) {
final int SIZE = 5;
int[][] matrix = new int[SIZE][SIZE];
// Initialise the matrix
for (int row = 0; row < matrix.length; row++) {
for (int col = 0; col < matrix[row].length; col++) {
if (row + col == matrix.length - 1) {
matrix[row][col] = col;
}
}
}
// Print the matrix
for (int row[] : matrix) {
for (int col : row) {
System.out.print(col + " ");
}
System.out.println();
}
}
}
输出:
0 0 0 0 4
0 0 0 3 0
0 0 2 0 0
0 1 0 0 0
0 0 0 0 0
我已经使用增强的 for 循环来打印矩阵。如果你愿意,你可以这样写:
// Print the matrix
for (int row = 0; row < matrix.length; row++) {
for (int col = 0; col < matrix[row].length; col++) {
System.out.print(matrix[row][col] + " ");
}
System.out.println();
}
目前正在尝试打印输出为:
的矩阵0 0 0 0 4
0 0 0 3 0
0 0 2 0 0
0 1 0 0 0
0 0 0 0 0
这是我目前的代码:
for(int row=0; row < matrix.length; row++)
for(int col = 0; col < matrix[row].length; col++)
if(row+col == matrix[row].length)
显然不完整。我什至不确定代码背后的逻辑是否正确。
假设总是平方 matrix.This 应该构造你的矩阵。
for(int row=0; row < matrix.length; row++)
{
//System.out.println("");
for(int col = 0; col < matrix.length; col++)
{
//eg [0][4] = 4 on valid condition [5-0-1] == 4
if(matrix.length-row-1 == col)
{
matrix[row][col] = col;
}
//System.out.print(matrix[row][col]);
}
}
要在同一步骤中打印,只需删除打印注释
这是应该有效的代码(假设矩阵总是正方形):
for(int row=0; row < matrix.length; row++){
for(int col = 0; col < matrix[row].length; col++){
if(row + col == matrix.length - 1){
matrix[row][col] = col;
System.out.print(col+ " "); // Print value
} else {
matrix[row][col] = 0; // Set value
System.out.print("0 ");
}
}
System.out.println("");
}
我们在条件中减去 1,因为 length-1 给了我们最后一个索引。 (提醒索引从 0 开始到长度 -1)
请注意,int
数组中的默认值为 0
,因为 int
变量的默认值为 0
。因此,您只需更改所需对角线上的值,其余值保持原样即可。
按如下操作:
public class Main {
public static void main(String[] args) {
final int SIZE = 5;
int[][] matrix = new int[SIZE][SIZE];
// Initialise the matrix
for (int row = 0; row < matrix.length; row++) {
for (int col = 0; col < matrix[row].length; col++) {
if (row + col == matrix.length - 1) {
matrix[row][col] = col;
}
}
}
// Print the matrix
for (int row[] : matrix) {
for (int col : row) {
System.out.print(col + " ");
}
System.out.println();
}
}
}
输出:
0 0 0 0 4
0 0 0 3 0
0 0 2 0 0
0 1 0 0 0
0 0 0 0 0
我已经使用增强的 for 循环来打印矩阵。如果你愿意,你可以这样写:
// Print the matrix
for (int row = 0; row < matrix.length; row++) {
for (int col = 0; col < matrix[row].length; col++) {
System.out.print(matrix[row][col] + " ");
}
System.out.println();
}