资源描述:
《利用三元组表实现矩阵相加.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、信息工程学院计算机系《数据结构与算法》实验报告姓名学号实验成绩班级实验日期项目号、实验名称3、利用三元组表实现矩阵相加实验要求(任课教师提供)1、该实验要求掌握矩阵的压缩存储和相关的应用;2、验证性实验要求在实验前认真研读相关教材,作好充分的预习准备工作,写出实验预习报告;3、学生必须在规定时间内独立完成,对实验过程中出现的问题,要求尽量做到独立思考,独立解决;4、每次实验的结果必须经过教师认可后,实验方可结束;5、要求学生必须认真对待每一个实验,不得缺席、迟到、早退;6、要求实验中认真做好实验记录,实验后认真完成实验报告;实验内容(由学生填写)1.代码#include
2、tdio.h>#include#defineMAX10typedefstruct{inti,j;intv;}TriTupleNode;typedefstruct{TriTupleNodedata[MAX];intm;intn;intt;}TSMatrix;6voidInitTriTupleNode(TSMatrix*a,char&m){inti,j,v,k;k=1;printf("输入三元组表非零元素的位置和值,输入以-1-10结束");while(i!=-1&&j!=-1){printf("请输入三元组表%c非零元素的位置和值:",m);scanf
3、("%d%d%d",&i,&j,&v);a->data[k].i=i;a->data[k].j=j;a->data[k].v=v;k++;}a->t=k;}voidShowMatrix(TSMatrix*a){inti,j,k=1;for(i=1;i<=a->m;i++){for(j=1;j<=a->n;j++){if(i==a->data[k].i&&j==a->data[k].j){printf("%d",a->data[k].v);k++;}else6printf("0");}printf("");}}voidAddTSMatrix(TSMatrix*a,TSMa
4、trix*b){inti,j,k=1,n=1;for(i=1;i<=a->m;i++){for(j=1;j<=a->n;j++){if(i==a->data[k].i&&j==a->data[k].j){if(i==b->data[n].i&&j==b->data[n].j){printf("%d",a->data[k].v+b->data[n].v);k++;n++;}else{printf("%d",a->data[k].v);k++;}}else{6if(i==b->data[n].i&&j==b->data[n].j){printf("%d",b->data[n].
5、v);n++;}elseprintf("0");}}printf("");}}intmain(){intc;do{intmaxrow,maxcol;charm='a',n='b';system("CLS");TSMatrixa,b;TSMatrix*pa=&a,*pb=&b;printf("请输入你要创建的矩阵的行列数:");scanf("%d%d",&maxrow,&maxcol);pa->m=maxrow;pa->n=maxcol;pb->m=maxrow;pb->n=maxcol;InitTriTupleNode(pa,m);6InitTriTupleNode(p
6、b,n);system("CLS");printf("三元组表示的矩阵a为:");ShowMatrix(pa);printf("三元组表示的矩阵b为:");ShowMatrix(pb);printf("三元组表示的矩阵a+b为:");AddTSMatrix(pa,pb);printf("tttt是否继续测试:");printf("tttt1.是");printf("tttt2.否");printf("tttt输入你的选择:");scanf("%d",&c);while(c!=1&&c!=2){printf("tt
7、tt输入有误!请重新输入你的选择:");scanf("%d",&c);}}while(c==1);return0;}6评语(由教师填写)2.截图图2.1三元组表的录入图2.2矩阵相加后的结果6