转置了怎么输出?

来源:百度知道 编辑:UC知道 时间:2024/06/17 17:09:56
#include<iostream.h>
#define MaxTerms 2 //假设非零元素的最大值为7
typedef int ElemType;
struct Triple {
int row, col;
ElemType val;
};
//一个稀疏矩阵的顺序存储类型定义
struct SMatrix {
int m, n, t;
Triple sm[MaxTerms+1];
};

void InitMatrix(SMatrix& M) //初始化稀疏矩阵
{
M.m=0; M.n=0; M.t=0;
}

void InputMatrix(SMatrix& M, int m, int n) //稀疏矩阵的输入
{
M.m=m; M.n=n;
int row, col, val;
int k=0;
cin>>row>>col>>val;
while(row!=0) {
k++;
M.sm[k].row=row;
M.sm[k].col=col;
M.sm[k].val=val;
cin>>row>>col>>val;
}
M.t=k;
}

void OutputMatrix(SMatrix& M) //稀疏矩阵的输出
{
cout<<"(";
for(int i=1; i<M.t; i++) {
cout<<"("<<M.sm[i].row<<",";
cout<<M.sm[i].col<<",";
cout<<M.sm[i].v

你运行上面的代码应该出现
输入稀疏矩阵,
你输入的第一个数是值,第二个是行,第三个是列
当你输入的值是0时结束,但是注意不是立即结束,你输入值为0后还要在行和列,也就是在输入2个数才能结束矩阵的输入,然后下面都是自动转制和输出的,你可以试下