主函数输入n(1<=n<=6)阶矩阵a中的元素,子函数判断:如果a是上三角矩阵(主对角线以下的元素都为0),返回true;否则返回false。 主函数依返回值输出:a矩阵是/不是上三角矩阵

主函数输入n(1<=n<=6)阶矩阵a中的元素,子函数判断:如果a是上三角矩阵(主对角线以下的元素都为0),返回true;否则返回false。
主函数依返回值输出:a矩阵是/不是上三角矩阵

循环判断元素值是否为0,假设行为i,列为j,所有i>j的元素为0,则是上三角矩阵

#include <iostream>
using namespace std;
#define N 10
bool fun1(int a[N][N],int n)
{
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
        {
            if(i>j && a[i][j] != 0)
                return false;
        }
        return true;
}

int main()
{
    int a[N][N];
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            cin>>a[i][j];
    if(fun1(a,n))
        cout<<"是上三角矩阵";
    else
        cout<<"不是上三角矩阵";
    return 0;
}

主对角线以下元素是0的矩阵是上三角矩阵。

img

代码如下:


#include <iostream>
using namespace std;
#define MAXNMB 6

//判断是否是上三角矩阵
bool isUpTriangle(int a[][MAXNMB], int n)
{
    int i, j;
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < i; j++)
        {
            if (a[i][j] != 0)
                return false;
        }
    }
    return true;
}
int main()
{
    int n, a[MAXNMB][MAXNMB], i, j;
    cin >> n; //输入n
    //判断n是否在1-6之间
    if (n < 1 || n>6)
        return 0;
    //输入n阶矩阵的值
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
            cin >> a[i][j];
    }
    //判断是否是上三角矩阵
    if (isUpTriangle(a, n))
        cout <<"a矩阵是上三角矩阵";
    else
        cout <<"a矩阵不是上三角矩阵";
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632