Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình kiểm tra xem ma trận có phải là tam giác trên trong C ++ hay không

Cho một ma trận vuông M [r] [c] trong đó 'r' là một số hàng và 'c' là các cột sao cho r =c, chúng ta phải kiểm tra xem 'M' có phải là ma trận tam giác trên hay không.

Ma trận tam giác trên

Ma trận tam giác phía trên là ma trận trong đó các phần tử phía trên đường chéo chính (bao gồm cả đường chéo chính) không phải là 0 và các phần tử bên dưới chỉ bằng 0.

Giống như trong Ví dụ cho sẵn bên dưới -

Chương trình kiểm tra xem ma trận có phải là tam giác trên trong C ++ hay không

Trong hình trên, các phần tử được đánh dấu màu đỏ là các phần tử thấp hơn từ đường chéo chính là 0 và các phần tử còn lại khác 0.

Ví dụ

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

Thuật toán

Start
Step 1 -> define macro as #define size 4
Step 2 -> Declare function to check matrix is lower triangular matrix
   bool check(int arr[size][size])
      Loop For int i = 1 and i < size and i++
         Loop For int j = 0 and j < i and j++
            IF (arr[i][j] != 0)
               return false
            End
      End
   End
   Return true
Step 3 -> In main()
   Declare int arr[size][size] = { { 1, 1, 3, 2 },
      { 0, 3, 3, 2 },
      { 0, 0, 2, 1 },
      { 0, 0, 0, 1 } }
   IF (check(arr))
      Print its a lower triangular matrix
   End
   Else
      Print its not a lower triangular matrix
   End
Stop

Ví dụ

#include <bits/stdc++.h>
#define size 4
using namespace std;
// check matrix is lower triangular matrix
bool check(int arr[size][size]){
   for (int i = 1; i < size; i++)
      for (int j = 0; j < i; j++)
         if (arr[i][j] != 0)
            return false;
   return true;
}
int main(){
   int arr[size][size] = { { 1, 1, 3, 2 },
      { 0, 3, 3, 2 },
      { 0, 0, 2, 1 },
      { 0, 0, 0, 1 } };
   if (check(arr))
      cout << "its a lower triangular matrix";
   else
      cout << "its not a lower triangular matrix";
   return 0;
}

Đầu ra

its a lower triangular matrix