p0=p0->right;//行后移 else {
e=e+p0->e*q0->e;//乘积累加 q0=q0->down;
p0=p0->right;//行列后移 } }
if(e)//e不为零则插入Q {
Q.tu++;
q=(OLink)malloc(sizeof(OLNode)); if(!q)
exit(OVERFLOW); q->i=i; q->j=j; q->e=e;
q->right=NULL; q->down=NULL; if(!Q.rhead[i]) Q.rhead[i]=q1=q; else
q1=q1->right=q; if(!Q.chead[j]) Q.chead[j]=q; else {
q2=Q.chead[j]; while(q2->down) q2=q2->down; q2->down=q; } } }
return OK; } }
void main() {
CrossList A,B,C;//声明三各矩阵 int Select;
cout<<\请选择你需要的操作\ cout<<\加法\
cout<<\减法\ cout<<\乘法\ cin>>Select; switch(Select) {
case 1 ://稀疏矩阵相加 {
Create(A); Create(B);
cout<<\你输入的是\ Print(A);
cout<<\加上\ Print(B); Add(A,B,C);
cout<<\结果是\ Print(C); break; }
case 2 ://稀疏矩阵相减 {
Create(A); Create(B);
cout<<\你输入的是\ Print(A);
cout<<\减去\ Print(B); Negative(B); Add(A,B,C);
cout<<\结果是\ Print(C); break; }
case 3 ://稀疏矩阵相乘 {
Create(A); Create(B);
cout<<\你输入的是\ Print(A);
cout<<\乘以\ Print(B); Mult(A,B,C);
cout<<\结果是\ Print(C); break;
} } }