C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

マトリックスをZ形式で印刷するC++プログラム?


ここでは、行列要素をZ形式で印刷する方法を説明します。したがって、配列が次のようになっている場合-

5 8 7 1
2 3 6 4
1 7 8 9
4 8 1 5

次に、次のように印刷されます:5、8、7、1、6、7、4、8、1、5

アルゴリズム

printMatrixZ(mat)

Begin
   print the first row
   i := 1, j := n-2
   while i < n and j >= 0, do
      print mat[i, j]
      i := i + 1, j := j - 1
   done
   print the last row
End

#include<iostream>
#define MAX 4
using namespace std;
void printMatrixZ(int mat[][MAX], int n){
   for(int i = 0; i<n; i++){
      cout << mat[0][i] << " ";
   }
   int i = 1, j = n-2;
   while(i < n && j >= 0){
      cout << mat[i][j] << " ";
      i++;
      j--;
   }
   for(int i = 1; i<n; i++){
      cout << mat[n-1][i] << " ";
   }
}
main() {
   int matrix[][MAX] = {{5, 8, 7, 1},
      {2, 3, 6, 4},
      {1, 7, 8, 9},
      {4, 8, 1, 5}
   };
   printMatrixZ(matrix, 4);
}

出力

5 8 7 1 6 7 4 8 1 5

  1. C++で対合行列をチェックするプログラム

    行列M[r][c]が与えられた場合、「r」は行数を示し、「c」はr=cが正方行列を形成するような列数を示します。与えられた正方行列が対合行列であるかどうかを確認する必要があります かどうか。 対合行列 行列は非自発的と呼ばれます 行列がそれ自体と乗算され、その結果が単位行列である場合に限り、行列。行列Iは、その主対角線が1であり、主対角線以外の要素がゼロである場合にのみ、単位行列です。したがって、行列は対合行列であると言えます。 M * M =Iの場合のみ 、ここで M はいくつかの行列であり、私は単位行列です。 以下の例のように- ここで、行列にそれ自体を乗算すると、結果は単

  2. 隣接行列を実装するためのC++プログラム

    グラフの隣接行列は、サイズV x Vの正方行列です。VはグラフGの頂点の数です。この行列では、各辺にV個の頂点がマークされています。グラフにiからjの頂点までのエッジがある場合、i thの隣接行列に 行とjth 列は1(または加重グラフの場合はゼロ以外の値)になります。それ以外の場合、その場所は0を保持します。 隣接行列表現の複雑さ: 隣接行列表現は、計算中にO(V2)のスペースを取ります。グラフに最大数のエッジと最小数のエッジがある場合、どちらの場合も必要なスペースは同じになります。 入力: 出力: 0 1 2 3 4