欢迎来到天天文库
浏览记录
ID:56985960
大小:26.00 KB
页数:7页
时间:2020-07-30
《稀疏矩阵运算.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#defineMAXSIZE30typedefstruct{inti,j,k;}Triple;typedefstruct{Tripledata[MAXSIZE+1];intmu,nu,tu;//行数,列数,非零元个数}TSMatrix;voidpaixu(TSMatrix*M){inty,z,temp;for(y=1;y<=M->tu;y++){for(z=y+1;z<=M->tu;z++){if(M->data[y].i>M->data[z].i
2、){temp=M->data[y].i;M->data[y].i=M->data[z].i;M->data[z].i=M->data[y].i;}elseif(M->data[y].i==M->data[z].i){if(M->data[y].j>M->data[z].j){temp=M->data[y].j;M->data[y].j=M->data[z].j;M->data[z].j=M->data[y].j;}}}}}voidCreatSMatrix(TSMatrix*M){intn;charc;printf("
3、输入行数:");scanf("%d",&M->mu);printf("输入列数:");scanf("%d",&M->nu);printf("输入非零元个数:");scanf("%d",&M->tu);if(M->tu>M->mu*M->nu){printf("---------------亲,非零元比矩阵元素个数多了。。。---------------");printf("请重新输入:");scanf("%d",&M->tu);}for(n=1;n<=M->tu;n++){printf("输入第%d个非零元"
4、,n);printf("输入行:");scanf("%d",&M->data[n].i);printf("输入列:");scanf("%d",&M->data[n].j);printf("输入数:");scanf("%d",&M->data[n].k);}printf("是否需要排序(Y/N):");getchar();scanf("%c",&c);if(c=='Y'
5、
6、c=='y')paixu(&M);}voidPrintSMatrix(intC[20][20],inta,intb){inti,j;printf("
7、结果是:");for(i=0;i8、tu&&n<=N.tu){if(M.data[m].i==N.data[n].i){if(M.data[m].j==N.data[n].j){temp=M.data[m].k+N.data[n].k;if(temp!=0){C[M.data[m].i-1][M.data[m].j-1]=temp;}m++;n++;}elseif(M.data[m].jN.9、data[n].j){C[N.data[n].i-1][N.data[n].j-1]=N.data[n].k;n++;}}elseif(M.data[m].i>N.data[n].i){C[N.data[n].i-1][N.data[n].j-1]=N.data[n].k;n++;}elseif(M.data[m].i10、a[m].j-1]=M.data[m].k;m++;}while(n<=N.tu){C[N.data[n].i-1][N.data[n].j-1]=N.data[n].k;n++;}PrintSMatrix(C,M.mu,M.nu);}elseprintf("亲,行和列不相等,木有办法做矩阵相加。。。");}voidSubtMatrix()//
8、tu&&n<=N.tu){if(M.data[m].i==N.data[n].i){if(M.data[m].j==N.data[n].j){temp=M.data[m].k+N.data[n].k;if(temp!=0){C[M.data[m].i-1][M.data[m].j-1]=temp;}m++;n++;}elseif(M.data[m].jN.
9、data[n].j){C[N.data[n].i-1][N.data[n].j-1]=N.data[n].k;n++;}}elseif(M.data[m].i>N.data[n].i){C[N.data[n].i-1][N.data[n].j-1]=N.data[n].k;n++;}elseif(M.data[m].i10、a[m].j-1]=M.data[m].k;m++;}while(n<=N.tu){C[N.data[n].i-1][N.data[n].j-1]=N.data[n].k;n++;}PrintSMatrix(C,M.mu,M.nu);}elseprintf("亲,行和列不相等,木有办法做矩阵相加。。。");}voidSubtMatrix()//
10、a[m].j-1]=M.data[m].k;m++;}while(n<=N.tu){C[N.data[n].i-1][N.data[n].j-1]=N.data[n].k;n++;}PrintSMatrix(C,M.mu,M.nu);}elseprintf("亲,行和列不相等,木有办法做矩阵相加。。。");}voidSubtMatrix()//
此文档下载收益归作者所有