gpt4 book ai didi

java - 打印偶数矩阵对角线

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:18 25 4
gpt4 key购买 nike

我有一个涉及矩阵的问题,我需要做的是填充一个 m × n 矩阵(即 m 行和 n 列),并在对角线图案中填充偶数。

示例:Required Output

我想出了以下代码,但我无法使级数对角增加,而且当矩阵是正方形(例如 4 × 4 矩阵)时,程序运行正常,但否则,如果它是 m × n,我会收到错误。

我的代码:

    int val;
int lonv;
int fil;
int col;
int su=2;
int matriz[][];
BufferedReader br=new BufferedReader (new InputStreamReader(System.in));
System.out.println("Ingrese el nro de filas para la matriz: ");
fil=Integer.parseInt(br.readLine());
System.out.println("Ingrese el nro de columnas para la matriz: ");
col=Integer.parseInt(br.readLine());
matriz=new int [fil][col];
for(int i=0; i<fil; i++)
{
for(int j=(col-1); j>=0; j-- )
{
if(matriz[i][j]<= 2)
{
matriz[i][j]= su;
su+=2;
}
else
{

System.out.println("");
matriz[i][j]= su;
su+=2;
}

}
}
for(int i=0; i<col; i++)
{
for(int j=0; j<col; j++)
{
System.out.print(matriz[i][j]+" ");
}
System.out.println("");
}

Test Case 1 : 错误

Test Case 2 : 无法以所需的对角线格式打印

最佳答案

错误

第二个嵌套循环

对于 m x n 矩阵,您会遇到索引越界错误,因为您的第二个嵌套循环严格取决于列的大小,这意味着要使其顺利运行,矩阵必须是正方形:

for(int i=0; i<col; i++)
{
for(int j=0; j<col; j++)
{
System.out.print(matriz[i][j]+" ");
}
System.out.println("");
}

您的错误案例

n>米错误

当 n > m 时会发生错误。如果列数大于行数 (n > m),那么您将尝试访问尚未创建的数据,因为您在行中将其正确初始化为 m × n 矩阵:

matriz=new int [fil][col];

解决方案

假设您正确插入了 m × n 矩阵的值,只需打印矩阵的实际情况(m × n 矩阵而不是 n × n),如下所示:

for(int i=0; i<fil; i++)
{
for(int j=0; j<col; j++)
{
System.out.print(matriz[i][j]+" ");
}
System.out.println("");
}

打印对角线

有关对角打印数组的信息可以在以下位置找到:http://javabypatel.blogspot.com/2016/12/print-matrix-diagonally-or-diagonal.html

逻辑应该非常可移植。

关于java - 打印偶数矩阵对角线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53437917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com