m0_61742809 2022-05-02 13:26 采纳率: 42.9%
浏览 12
已结题

矩阵转置!转置代码有问题!求解

/ ConsoleApplication5.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include
using namespace std;

typedef struct

{

int i,j;

int e;

}Triple;

typedef struct

{

Triple data[100];

int mu,nu,tu;

}SparseMatrix;

void CreateMatrix(SparseMatrix &M)

{

cout<<"请输入矩阵行数:";

cin>>M.mu;

cout<<"请输入矩阵列数:";

cin>>M.nu;

cout<<"请输入非零元素个数:";

cin>>M.tu;

cout<<"请输入非零元素(输入格式为:行号 列号 元素值):\n";

for(int p=1;p<=M.tu;p++)

    cin>>M.data[p].i>>M.data[p].j>>M.data[p].e;

}

void ShowMatrix(SparseMatrix&M)
{
int p=1;
if (M.nu)
{

    for(int i=1;i<=M.mu;i++)
        {
            for(int j=1;j<=M.nu;j++)
            {
                if(i==M.data[p].i&&j==M.data[p].j)
                {
                    cout<<M.data[p].e<<" ";
                    p++;
                }
                else
                    cout<<0<<" ";
            }
            cout<<endl;
    }
}

}

void TransMatrix(SparseMatrix&M,SparseMatrix&N)
{
N.mu=M.nu;
N.nu=M.mu;
N.tu=M.tu;

if(N.tu)
{
    int n=1;
    for(int i=1;i<=M.mu;i++)

img

        for(int m=1;m<=M.tu;m++)
        {
            if(M.data[m].i==i)
            {
                N.data[n].i=M.data[m].j;
                N.data[n].j=M.data[m].i;
                N.data[n].e=M.data[m].e;
                n++;
            }
        }
}

}

int _tmain(int argc, _TCHAR* argv[])
{
SparseMatrix M,N;
CreateMatrix(M);
cout<<endl<<"显示创建的行列式:"<<endl;
ShowMatrix(M);
TransMatrix(M,N);
cout<<endl<<"转置后的行列式为:"<<endl;
ShowMatrix(N);

getchar();
return 0;

}

他这个转置代码哪里有漏洞啊?测数据转置一直有问题

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 5月10日
    • 创建了问题 5月2日

    悬赏问题

    • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
    • ¥20 遥感植被物候指数空间分布图制作
    • ¥15 安装了xlrd库但是import不了…
    • ¥20 Github上传代码没有contribution和activity记录
    • ¥20 SNETCracker
    • ¥15 数学建模大赛交通流量控制
    • ¥15 为什么我安装了open3d但是在调用的时候没有报错但是什么都没有发生呢
    • ¥50 paddleocr最下面一行似乎无法识别
    • ¥15 求某类社交网络数据集
    • ¥15 靶向捕获探针方法/参考文献