3元组矩阵的相加~~~~~出错~

来源:百度知道 编辑:UC知道 时间:2024/06/10 05:42:13
#include "iostream.h"
#include "malloc.h"
#define MAXSIZE 100
struct Triple
{
int i,j;
int e;
};
typedef struct
{
Triple data[MAXSIZE];
int mu,nu,tu;
}TSMatrix;
void CreatSNatix(TSMatrix *M,int m,int n)
{
int k;
int g,h,x;
int r=0;
cout<<"请输入非零元素的个数:";
cin>>k;
cout<<"请分别输入行,列以及非零元素:";
for(r=0;r<k;r++)
{ cin>>g>>h>>x;
M->data[r].i=g;
M->data[r].j=h;
M->data[r].e=x;
r++;
}
M->tu=k;

}

TSMatrix *Add(TSMatrix *A,TSMatrix *B,TSMatrix *C)
{
//C=(TSMatrix *)malloc(sizeof(TSMatrix));
int m(1),n(1),k(0);
while((m<=A->tu)&&(n<=B->tu))
{if(A->data[m].i=B->data[n].i)
if(A->data[m].j<B->data[n].j)
{ C->data[k].i=A->data[m].i;
C->data[

TSMatrix *A,*B,*C;
int m=2,n=2;
A=(TSMatrix *)malloc(sizeof(TSMatrix));
B=(TSMatrix *)malloc(sizeof(TSMatrix));
C=(TSMatrix *)malloc(sizeof(TSMatrix));
cout<<"输入A:";
CreatSNatix(A,m,n);
cout<<"输入B:";
CreatSNatix(B,m,n);
Add(A,B,C);
int i;
cout<<"A,B矩阵之和C的三元组为:"<<endl;
for(i=1;i<=C->tu;i++)
cout<<C->data[i].i<<"\t"<<C->data[i].j<<"\t"<<C->data[i].e;

重这就开始错.自己好好检查下

没有错啊,全对的!