C++ 程式中的主對角矩陣


在本教程中,我們將編寫一個程式來幫助我們找出給定的矩陣是否是主對角矩陣。

如果矩陣中除對角線元素以外的元素之和小於對角線矩陣,則矩陣稱為主對角矩陣。讓我們看一個例子。

421
352
247

上面的矩陣是主對角矩陣。因為

4 > 2 + 1
5 ≥ 3 + 2
7 > 4 + 2

所有對角線元素都大於或等於同一行中非對角線元素之和。

讓我們看看解決這個問題的步驟。

  • 遍歷矩陣的行和列。

    • 求出非對角線元素之和。

    • 將非對角線元素之和與對角線元素進行比較。

    • 如果非對角線元素之和大於對角線元素,則列印“否”。

  • 列印“是”。

示例

讓我們看看程式碼。

#include <bits/stdc++.h>
using namespace std;
#define N 3
bool isDiagonallyDominantMatrix(int matrix[N][N], int n) {
   for (int i = 0; i < n; i++) {
      int sum = 0;
      for (int j = 0; j < n; j++) {
         if (i != j) {
            sum += abs(matrix[i][j]);
         }
      }
      if (abs(matrix[i][i]) < sum) {
         return false;
      }
   }
   return true;
}
int main() {
   // int matrix[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
   int matrix[N][N] = {{4, 2, 1}, {3, 5, 2}, {2, 4, 7}};
   if (isDiagonallyDominantMatrix(matrix, 3)) {
      cout << "Yes" << endl;
   }
   else {
      cout << "No" << endl;
   }
return 0;
}

輸出

如果你執行上面的程式碼,你會得到以下結果。

Yes

結論

如果你對本教程有任何疑問,可以在評論區提出。

更新於: 2021 年 1 月 27 日

359 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.