Viết chương trình kiểm tra ma trận có phải là ma phương.khi ma trận được gọi là ma phương khi trong các hàng,cột,các đường chéo bằng nhau

Viết chương trình kiểm tra ma trận có phải là ma phương.khi ma trận được gọi là ma phương khi trong các hàng,cột,các đường chéo bằng nhau

0 bình luận về “Viết chương trình kiểm tra ma trận có phải là ma phương.khi ma trận được gọi là ma phương khi trong các hàng,cột,các đường chéo bằng nhau”

  1. #include<iostream>
    using namespace std;
    bool kt(int m) //kiểm tra ma phương
    {
        int mt[m][m],a=0,b=0;
        for(int i=0;i<m;i++)
        {
            for(int j=0;j<m;j++)
            {
                cin>>mt[i][j]; //nhập ma trận
                if(i==j) a+=mt[i][j];
            }
        }
        for(int i=0;i<m;i++)
        {
            b=0;
            for(int j=0;j<m;j++)
                b+=mt[i][j];
            if(b!=a) return false;
        }
        for(int i=0;i<m;i++)
        {
            b=0;
            for(int j=0;j<m;j++)
                b+=mt[j][i];
            if(b!=a) return false;
        }
        b=0;
        for(int i=0;i<m;i++)
        {
            int j=m-i-1;
            b+=mt[i][j];
        }
        if(b!=a) return false;
        return true;
    }
    int main()
    {
        int m;
        cin>>m; //nhập cấp ma trận
        if(kt(m)) cout<<“Ma tran vua nhap vao la ma phuong.”;
        else cout<<“Ma tran vua nhap vao khong phai la ma phuong.”;
        //samon247
    }

    Bình luận
  2. uses crt;
    var n,i,j,kt:longint; a:array[1..1000,1..1000]of longint;
    b:array[1..10000000]of longint;
    begin
    clrscr;
        write(‘n=’);readln(n);
        for i:=1 to n do
           for j:=1 to n do
              begin
                 write(‘a[‘,i,’,’,j,’]=’);readln(a[i,j]);
              end;
        for i:=1 to n do for j:=1 to n do inc(b[i],a[i,j]);
        for i:=1 to n do for j:=1 to n do inc(b[n+i],a[j,i]);
        for i:=1 to n do inc(b[n*2+1],a[i,i]);
        for i:=1 to n do inc(b[n*2+2],a[i,n-i+1]);
        for i:=2 to n*2+2 do if b[i]<>b[i-1] then kt:=1;
        writeln(kt=0);
    readln
    end.

    Bình luận

Viết một bình luận