Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C의 항등 행렬 프로그램

<시간/>

정사각형 행렬 M[r][c]에서 'r'은 행의 수이고 'c'는 r =c인 열이므로 'M'이 단위 행렬인지 확인해야 합니다.

Identity Matrix

단위 행렬은 크기가 nxn인 정사각형 행렬의 단위 행렬로도 알려져 있습니다. 여기서 대각선 요소는 정수 값이 1이고 비대각 요소는 정수 값이 0입니다.

아래 주어진 예에서와 같이 -

$$I1=\begin{bmatrix}1 \end{bmatrix},\\I2=\begin{bmatrix}1 &0 \\0 &1 \end{bmatrix},\\I3=\begin{bmatrix}1 &0 &0 \\0 &1 &0 \\0 &0 &1 \end{bmatrix},\\In=\begin{bmatrix}
1 &0 &0 &...&0 \\
0 &1 &0 &...&0\\
0 &0 &1 &...&0\\
. &. &. &...&.\\
. &. &. &...&.\\
0 &0 &0 &...&1\\
\end{bmatrix} $$

예시

Input: m[3][3] = { {1, 0, 0},
   {0, 1, 0},
   {0, 0, 1}}
Output: yes
Input: m[3][3] == { {3, 0, 1},
   {6, 2, 0},
   {7, 5, 3} }
Output: no

알고리즘

Start
Step 1 -> declare function for finding identity matrix
   int identity(int num)
      declare int row, col
      Loop For row = 0 and row < num and row++
         Loop For col = 0 and col < num and col++
            IF (row = col)
               Print 1
            Else
               Print 0
      End
   End
Step 2 -> In main()
   Declare int size = 4
   Call identity(size)
Stop

예시

#include<stdio.h>
int identity(int num){
   int row, col;
   for (row = 0; row < num; row++){
      for (col = 0; col < num; col++){
         if (row == col)
            printf("%d ", 1);
         else
            printf("%d ", 0);
      }
      printf("\n");
   }
   return 0;
}
int main(){
   int size = 4;
   identity(size);
   return 0;
}

출력

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1