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

配列の下三角行列と上三角行列をCで出力するプログラム


プログラムの説明

配列の下三角行列と上三角行列を印刷するプログラムを作成します。

三角行列

三角行列は、下三角または上三角のいずれかです。

下三角行列

主対角線より上のすべてのエントリがゼロの場合、正方行列は下三角行列と呼ばれます。

上三角行列

主対角線の下のすべてのエントリがゼロの場合、正方行列は上三角行列と呼ばれます。

フォームのマトリックス

$$ {\ displaystyle L ={\ begin {bmatrix} \ ell _ {1,1} &&&&0 \\\ ell _ {2,1}&\ ell _ {2,2} &&&\\\ ell _ {3、 1}&\ ell _ {3,2}&\ ddots &&\\\ vdots&\ vdots&\ ddots&\ ddots&\\\ ell _ {n、1}&\ ell _ {n、2}&\ ldots&\ ell _ {n、n-1}&\ ell _ {n、n} \ end {bmatrix}}} $$

下三角行列または左三角行列と呼ばれます 同様に、次の形式の行列

$$ {\ displaystyle U ={\ begin {bmatrix} u_ {1,1}&u_ {1,2}&u_ {1,3}&\ ldots&u_ {1,n} \\&u_ {2,2}&u_ { 2,3}&\ ldots&u_ {2、n} \\ &&\ ddots&\ ddots&\ vdots \\ &&&\ ddots&u_ {n-1、n} \\ 0 &&&&u_ {n、n} \ end {bmatrix} }} $$

上三角行列または直角三角形行列と呼ばれます。下三角行列または左三角行列は一般に変数Lで表され、上三角行列または右三角行列は一般に変数UまたはRで表されます。

上三角と下三角の両方の行列は対角です。三角行列に似た行列は三角行列と呼ばれます。

例-上三角行列

$$ {\ displaystyle {\ begin {bmatrix} {1}&{4}&{1} \\ {0}&{6}&{4} \\ {0}&{0}&{1} \ end {bmatrix}}} $$

例-下三角行列

$$ {\ displaystyle {\ begin {bmatrix} {1}&{0}&{0} \\ {2}&{8}&{0} \\ {4}&{9}&{7} \ end {bmatrix}}} $$

アルゴリズム

例-行列のさまざまな寸法

配列の下三角行列と上三角行列をCで出力するプログラム

配列の下三角行列と上三角行列をCで出力するプログラム

下三角行列の場合

行と列のインデックス位置を見つけます。

列の位置が行の位置よりも大きい場合は、その位置を0にします。

上三角行列の場合

行と列のインデックス位置を見つけます。

列の位置が行の位置よりも小さい場合は、その位置を0にします。

配列の下三角行列と上三角行列をCで出力するプログラム

/* Program to find Lower and Upper Triangle Matrix */
#include<stdio.h>
int main() {
   int rows, cols, r, c, matrix[10][10];
   clrscr(); /*Clears the Screen*/
   printf("Please enter the number of rows for the matrix: ");
   scanf("%d", &rows);
   printf("\n");
   printf("Please enter the number of columns for the matrix: ");
   scanf("%d", &cols);
   printf("\n");
   printf("Please enter the elements for the Matrix: \n");
   for(r = 0; r < rows; r++){
      for(c = 0;c < cols;c++){
         scanf("%d", &matrix[r][c]);
      }
   }
   printf("\n The Lower Triangular Matrix is: ");
   for(r = 0; r < rows; r++){
      printf("\n");
      for(c = 0; c < cols; c++){
      if(r >= c){
         printf("%d\t ", matrix[r][c]);
      }
      else{
         printf("0");
         printf("\t");
      }
   }
   }
   printf("\n\n The Upper Triangular Matrix is: ");
   for(r = 0; r < rows; r++){
      printf("\n");
      for(c = 0; c < cols; c++){
         if(r > c){
            printf("0");
            printf("\t");
         }
         else{
            printf("%d\t ", matrix[r][c]);

         }
      }
   }
   getch();
   return 0;
}

出力

配列の下三角行列と上三角行列をCで出力するプログラム


  1. コーナー要素とその合計を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

  2. 行列がC++で下三角行列であるかどうかをチェックするプログラム

    正方行列M[r][c]が与えられます。ここで、「r」は行の数であり、「c」はr =cのような列であるため、「M」が下三角行列であるかどうかを確認する必要があります。 下三角行列- 下三角行列は、主対角線の下の要素(主対角線を含む)がゼロではなく、上の要素がゼロのみである行列です。 以下の例のように- 上の図で、赤で強調表示されている要素は、主対角線の上の要素であり、ゼロであり、残りの要素はゼロではありません。 例 Input: m[3][3] = { {1, 0, 0},    {2, 3, 0},    {4, 5, 6}} Output: