InocentDevil 2016-06-27 03:49 采纳率: 0%
浏览 1579
已结题

矩阵转置:求解释为什么矩阵转置不成功,还是原来的矩阵

#include
using namespace std;
const int row = 2;
const int column = 2;
void PrintMatrix(int m[][column]);
void ReverseMatrix(int matrix[][column]);

void main()
{

cout<<"请输入"<<(row * column)<<"个数字"<<endl;
int matrix[row][column];
for(int i = 0; i < row; ++i)
{
    for(int j = 0; j < column; ++j)
    {
        cin>>matrix[i][j];
    }       
}
PrintMatrix(matrix);
ReverseMatrix(matrix);
cout<<"转置后:"<<endl;
PrintMatrix(matrix);

}

void PrintMatrix(int matrix[][column])
{
for(int i = 0; i < row; i++)
{
for(int j = 0; j < column; j++)
{
cout<<matrix[i][j]<<" ";
}
cout<<endl<<endl<<endl;
}
}

void ReverseMatrix(int matrix[][column])
{
for(int i = 0; i < row; i++)
{
for(int j = 0; j < column; j++)
{
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
}

//求解释为什么矩阵转置不成功,还是原来的矩阵

  • 写回答

1条回答

  • 小灸舞 2016-06-27 03:54
    关注

    for(int j = 0; j < column; j++)应该改成for(int j = 0; j < i; j++)
    不然相当于你每个位置都交换了两次,等于没有交换

     #include <iostream>
    using namespace std;
    const int row = 2;
    const int column = 2;
    void PrintMatrix(int m[][column]);
    void ReverseMatrix(int matrix[][column]);
    
    void main()
    {
    
    
        cout << "请输入" << (row * column) << "个数字" << endl;
        int matrix[row][column];
        for (int i = 0; i < row; ++i)
        {
            for (int j = 0; j < column; ++j)
            {
                cin >> matrix[i][j];
            }
        }
        PrintMatrix(matrix);
        ReverseMatrix(matrix);
        cout << "转置后:" << endl;
        PrintMatrix(matrix);
    }
    
    void PrintMatrix(int matrix[][column])
    {
        for (int i = 0; i < row; i++)
        {
            for (int j = 0; j < column; j++)
            {
                cout << matrix[i][j] << "  ";
            }
            cout << endl << endl << endl;
        }
    }
    
    void ReverseMatrix(int matrix[][column])
    {
        for (int i = 0; i < row; i++)
        {
            for (int j = 0; j < i; j++)
            {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog