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

Cプログラムで行列を斜め下向きに印刷します。


サイズnxnの配列が与えられ、タスクは整数型の行列要素を対角線下に印刷することです。

斜め下向きとは、下の図のように、任意のサイズのnxnの配列を斜め下向きに印刷することを意味します-

Cプログラムで行列を斜め下向きに印刷します。

最初に1を印刷し、次に2に移動して印刷し、対角線上に4に移動して、以下同様に印刷します。

Input: Matrix [3][3] = {
   { 1, 2, 3 },
   { 4, 5, 6 },
   { 7, 8, 9 }}
Output: 1 2 4 3 5 7 6 8 9

アルゴリズム

int diagonally_down(int mat[n][n])
START
STEP 1: DECLARE i, j, row, col AS INT
STEP 2: LOOP FOR i = 0 AND i < n AND i++
   SET row = 0
   SET col = i
   LOOP WHILE col >= 0
      PRINT mat[row][col]
      INCREMENT row BY 1 AND DECREMENT col BY 1
   END WHILE
END FOR
STEP 3: LOOP FOR j = 1 AND j < n AND j++
   SET row = j
   SET col = n-1
   LOOP WHILE row < n
      PRINT mat[row][col]
      INCREMENT row BY 1 AND DECREMENT col BY 1
   END WHILE
END FOR
STOP

#include <stdio.h>
#define n 3
int diagonally_down(int mat[n][n]){
   int i, j, row, col;
   //printing above elements
   for (i = 0; i < n; i++){
      row = 0;
      col = i;
      while(col >= 0) //Moving downwards from the first row{
         printf("%d ", mat[row++][col--]);
      }
   }
   //printing below elements
   for (j = 1; j < n; j++){
      row = j;
      col = n-1;
      while(row<n) //Moving from the last column{
         printf("%d ", mat[row++][col--]);
      }
   }
}
int main(int argc, char const *argv[]){
   int mat[][n] = {
      {1, 2, 3},
      {4, 5, 6},
      {7, 8, 9}
   };
   diagonally_down(mat);
   return 0;
}

出力

上記のプログラムを実行すると、次の出力が生成されます-

1 2 4 3 5 7 6 8 9

  1. Cプログラムの指定された行列のゼロの数でソートされた列のインデックスを出力します。

    サイズNxMの配列が与えられ、N行数とM列数であり、タスクは、任意の列に存在するゼロの数に基づいてソート操作を実行した後、対応する行列のすべての列のゼロの数を出力することです。 たとえば、1番目の st 列には1つのゼロと2つのndが含まれます 列にゼロと3番目のrdが含まれていません 列に2つのゼロが含まれている場合、結果は− 312になります。 例 Input:    0 0 0    1 1 1    1 0 1 Output: 1 3 2 説明 注 −マトリックスはインデックス1から開始したと見なされます。 例

  2. コーナー要素とその合計をCプログラムの2次元行列に出力します。

    サイズが2X2の配列を考えると、配列に格納されているすべてのコーナー要素の合計を出力することが課題になります。 行「r」と列「c」が0から行と列を開始する行列mat[r][c]を想定すると、そのコーナー要素は次のようになります。 mat [0] [0]、mat [0] [c-1]、mat [r-1] [0]、mat[r-1][c-1]。ここでのタスクは、これらのコーナー要素を取得し、それらのコーナー要素を合計することです。つまり、mat [0] [0] + mat [0] [c-1] + mat [r-1] [0] + mat [r-1] [c-1]、結果を画面に印刷します。 例 Input