for(p=1;p<=M.h;p++) for(q=1;q<=N.l;q++) a[p][q]=0;
for(p=1;p<=M.total;p++) for(q=1;q<=N.total;q++) if(M.data[p].j==N.data[q].i)
{ }
a[M.data[p].i][N.data[q].j]+=M.data[p].e*N.data[q].e;
for(p=1;p<=M.h;p++) for(q=1;q<=N.l;q++) if(a[p][q]!=0) {
Qn++;
T.data[Qn].e=a[p][q]; T.data[Qn].i=p; T.data[Qn].j=q; }
T.total=Qn; }
void main(){
TSMatrix ts1,ts2,ts3; int choice; do {
printf(\矩阵的转置!\\n\ printf(\两个矩阵相加!\\n\ printf(\两个矩阵相减!\\n\ printf(\两个矩阵相乘!\\n\ printf(\退出程序!\\n\ printf(\请输入您的选择:\\n\ scanf(\ switch(choice) {
case 1:
printf(\请输入矩阵的行和列及非零元个数用逗号隔开:\\n\ Creat(ts1);
Print(ts1);
TransposTSMtrix(ts1,ts2); printf(\转置后的矩阵为:\\n\ Print(ts2);
break; case 2:
printf(\请输入第一个矩阵的行和列及非零元个数用逗号隔开:\\n\
Creat(ts1);
printf(\第一个矩阵为:\\n\
Print(ts1);
printf(\请输入第二个矩阵的行和列及非零元个数用逗号隔开:\\n\ Creat(ts2);
printf(\第二个矩阵为:\\n\ Print(ts2);
Add(ts1,ts2,ts3);
printf(\以上两个矩阵相加后为:\\n\ Print(ts3);
break; case 3:
printf(\请输入第一个矩阵的行和列及非零元个数用逗号隔开:\\n\ Creat(ts1);
printf(\第一个矩阵为:\\n\
Print(ts1);
printf(\请输入第二个矩阵的行和列及非零元个数用逗号隔开:\\n\ Creat(ts2);
printf(\第二个矩阵为:\\n\ Print(ts2);
Jiansmatrix(ts1,ts2,ts3);
printf(\以上两个矩阵相减后为:\\n\
Print(ts3); break; case 4:
printf(\请输入第一个矩阵的行和列及非零元个数用逗号隔开:\\n\ Creat(ts1);
printf(\第一个矩阵为:\\n\
Print(ts1);
printf(\请输入第二个矩阵的行和列及非零元个数用逗号隔开:\\n\ Creat(ts2);
printf(\第二个矩阵为:\\n\
Print(ts2);
Multsmatrix(ts1,ts2,ts3);
printf(\以上两个矩阵相乘后为:\\n\ Print(ts3); break; case 5: exit(0); break;
} }while(choice!=0);
scanf(\
}