您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 利用三元组表实现矩阵相加
1信息工程学院计算机系《数据结构与算法》实验报告姓名学号实验成绩班级实验日期项目号、实验名称3、利用三元组表实现矩阵相加实验要求(任课教师提供)1、该实验要求掌握矩阵的压缩存储和相关的应用;2、验证性实验要求在实验前认真研读相关教材,作好充分的预习准备工作,写出实验预习报告;3、学生必须在规定时间内独立完成,对实验过程中出现的问题,要求尽量做到独立思考,独立解决;4、每次实验的结果必须经过教师认可后,实验方可结束;5、要求学生必须认真对待每一个实验,不得缺席、迟到、早退;6、要求实验中认真做好实验记录,实验后认真完成实验报告;实验内容(由学生填写)1.代码#includestdio.h#includestdlib.h#defineMAX10typedefstruct{inti,j;intv;}TriTupleNode;typedefstruct{TriTupleNodedata[MAX];intm;intn;intt;}TSMatrix;2voidInitTriTupleNode(TSMatrix*a,char&m){inti,j,v,k;k=1;printf(输入三元组表非零元素的位置和值,输入以-1-10结束\n);while(i!=-1&&j!=-1){printf(请输入三元组表%c非零元素的位置和值:,m);scanf(%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++;}else3printf(0);}printf(\n);}}voidAddTSMatrix(TSMatrix*a,TSMatrix*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{4if(i==b-data[n].i&&j==b-data[n].j){printf(%d,b-data[n].v);n++;}elseprintf(0);}}printf(\n);}}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);5InitTriTupleNode(pb,n);system(CLS);printf(三元组表示的矩阵a为:\n);ShowMatrix(pa);printf(三元组表示的矩阵b为:\n);ShowMatrix(pb);printf(三元组表示的矩阵a+b为:\n);AddTSMatrix(pa,pb);printf(\t\t\t\t是否继续测试:\n);printf(\t\t\t\t1.是\n);printf(\t\t\t\t2.否\n);printf(\t\t\t\t输入你的选择:);scanf(%d,&c);while(c!=1&&c!=2){printf(\t\t\t\t\n输入有误!请重新输入你的选择:);scanf(%d,&c);}}while(c==1);return0;}6评语(由教师填写)2.截图图2.1三元组表的录入图2.2矩阵相加后的结果
本文标题:利用三元组表实现矩阵相加
链接地址:https://www.777doc.com/doc-5917952 .html