注册 登录
编程论坛 C++教室

来帮忙下!please!!!

su_yongzhen 发布于 2010-06-18 14:58, 354 次点击
怎么改下这段代码,使输出矩阵是否对称
例如  1 0 0  既是对称又是反对称的   对称是关于对角线对称的两个数,不管是0 还是 1 ,只要一样则是对称
      0 1 0                         反对称是关于对角线每一对对称的两个数都是0 ,则是反对称
      0 0 1                         请帮帮忙!  
  for(i=0;i<n;i++)
        for(j=0;j<n;j++){
            q+=1;
            if(p[i][j]==p[j][i])
                m=1;
            else
                m=0;
            h=h+m;
        }     
        if(h==q)
            cout<<"对称的,";
       else if(h==n)
            cout<<"反对称的,";
          else
                cout<<"既不是对称也不是反对称的,";
1 回复
#2
pbreak2010-06-19 17:24
#include "stdafx.h"
#include <iostream>
using namespace std;
#define sizeMatrix 4
int main(int argc, char* argv[])
{   
    int p[sizeMatrix][sizeMatrix] = {4,3,2,1,
        6,5,2,2,
        7,3,5,3,
        4,7,6,4};
    int r[sizeMatrix][sizeMatrix] = {1,2,3,4,
    2,2,5,6,
    3,5,3,7,
    4,6,7,4};
    int m = 0,n = 0,h = 0,k = 0;
    for(int i=0;i<sizeMatrix;i++)
        for(int j=0;j<sizeMatrix;j++){
            if(p[i][j]==p[j][i])
                h++;
            if(p[i][j] == p[sizeMatrix - 1 - j][sizeMatrix - 1 - i])
                k++;
        }     
        if( h == sizeMatrix*sizeMatrix )
            cout<<"对称的"<<endl;
        else if( k == sizeMatrix*sizeMatrix )
            cout<<"反对称的"<<endl;
        else
            cout<<"既不是对称也不是反对称的"<<endl;
    return 0;
}
1