0

行列 3x3 が与えられた場合、最長の対角線のみをトラバースするにはどうすればよいですか?

次の例を見てください。

1 2 3
4 5 6
7 8 9

1,5,9 をトラバースしたい

4

2 に答える 2

3

行列が と呼ばれる 2D 配列であると仮定しますmatrix

for (int i = 0; i < matrix.length; i++) {
    // do something with entry matrix[i][i]
}

あなたが探しているものでなければなりません。

于 2012-08-03T21:22:37.207 に答える
0

パラメータが配列、行数、列数である関数を作成します。したがって、斜めにパーセンテージの値を受け取ることがあります。斜めに存在する値は、行と列のインデックスが同じ値です。

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--]);
    }
}
于 2014-05-14T11:48:54.217 に答える