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 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始
广告