三元组表示的矩阵操作实现 (输出矩阵中从if(Check)开始就不懂了,麻烦这部分重点讲解下)

void CreateMatrix(Matrix &M)//创建矩阵
{
    cout<<"请输入"<<M.elemnum<<"个非0元素的行数、列数(均从1开始)、元素大小:\n";
    for(int i=1; i<=M.elemnum; i++)
    {
        cin>>M.data[i].row>>M.data[i].line>>M.data[i].elem;
    }
 
    SortByRow(M);//将矩阵的所有非零元素按照行优先的顺序重新排列,便于后续操作
    cout<<"创建的稀疏矩阵为:\n";
    Output(M);
}

void Output(Matrix M)//输出矩阵
{
    int index=1;
    for(int row=1; row<=M.rownum; row++)
    {
        for(int line=1; line<=M.linenum; line++)
        {
            if(Check(M,index,row,line))//检测当前位置是否是非零元素
            {
                cout<<setw(4)<<M.data[index].elem;
                index++;
            }
            else
            {
                cout<<setw(4)<<0;
            }
        }
        cout<<endl;
    }
}

 

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,目前超出我们的服务范围,暂时无法为您解答。

首次提问人员可免费体验一次有问必答服务。目前首次提问的问题服务范围为:编程语言、Java开发、python、数据库、前端开发 领域专业技术问题,为您提供问题的解决思路和指导。不提供源码代写、项目文档代写、论文代写、作业代写、安装包资源发送或安装、软件使用指导等服务。

我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。