给定一个 3x3 矩阵,我怎样才能只穿过最长的对角线?
举个例子:
1 2 3
4 5 6
7 8 9
我要穿越1,5,9
假设您的矩阵是一个二维数组,称为matrix
:
for (int i = 0; i < matrix.length; i++) {
// do something with entry matrix[i][i]
}
应该是你要找的。
创建一个函数,其中参数为:数组、行数和列数。因此,我们可能会收到对角线的持续值。对角线存在的值是行索引和列索引相同的值。
X . . . .
. X . . .
. . X . .
. . . X .
. . . . X
void diagonalPrint(int a[100][100], int noOfRows, int noOfCols)
{
for(int i=0; i<noOfRows && i<noOfCols ; i++)
{
printf("%d", a[i][i]);
}
}
此外,要打印反向对角线,即
. . . . . X
. . . . X .
. . . X . .
. . X . . .
. X . . . .
X . . . . .
void diagonalPrint(int a[100][100], int noOfRows, int noOfCols)
{
for(int i=0; i<noOfRows && noOfCols==0 ; i++)
{
printf("%d", a[i][noOfCols--]);
}
}