资源描述:
《稀疏矩阵程序代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#include#include#include#defineMAXSIZE100/*假设非零元个数的最大值为100*/typedefstruct{inti,j;/*该非零元的行下标和列下标*/intv;}Triple;typedefstruct{Tripledata[MAXSIZE+1];/*非零元三元组表,data[0]未用*/intmu,nu,tu;/*矩阵的行数,列数和非零元个数*/}TSMastrix;//**********************
2、声明函数**********************//voidcreat(TSMastrix&T);/*创建三元组*/voidadd(TSMastrixA,TSMastrixB);/*加法运算*/voidsub(TSMastrixA,TSMastrixB);/*减法运算*/voidmult(TSMastrixA,TSMastrixB);/*乘法运算*/voidprint(TSMastrixA);/*输出计算结果*/charmenu();//菜单voiddisplay(TSMastrixM);//s输出函数//********************主函数*****************
3、******//voidmain(){TSMastrixA,B;creat(A);creat(B);printf("***************创建矩阵********************");for(;;)switch(menu()){case'0':printf("*****************输出矩阵A*************************");display(A);printf("*****************输出矩阵B*************************");display(B);getchar();break;case'1':
4、add(A,B);getch();break;case'2':sub(A,B);getch();break;case'3':mult(A,B);getch();break;case'4':creat(A);creat(B);getch();break;case'5':system("cls");exit(0);}}//*********************子函数***********************////********创建三元组存储矩阵数据********//voidcreat(TSMastrix&T){intk,i,j;printf("请输入矩阵");do{pri
5、ntf("请输入矩阵的行数,列数,非零元素个数");scanf("%d%d%d",&T.mu,&T.nu,&T.tu);if((T.mu<0
6、
7、T.mu>20)
8、
9、(T.nu<0
10、
11、T.nu>20)
12、
13、((T.tu>T.mu*T.nu)
14、
15、T.tu>MAXSIZE))printf("超出行列定义范围,请重新输入!!");}while((T.mu<0
16、
17、T.mu>20)
18、
19、(T.nu<0
20、
21、T.nu>20)
22、
23、((T.tu>T.mu*T.nu)
24、
25、T.tu>MAXSIZE));printf("******************************************
26、***************");for(k=1;k<=T.tu;k++){do{printf("请输入非零元素的行数i,列数j,数值v");scanf("%d%d%d",&T.data[k].i,&T.data[k].j,&T.data[k].v);if((T.data[k].i<0
27、
28、T.data[k].i>T.mu)
29、
30、(T.data[k].j<0
31、
32、T.data[k].j>T.nu)
33、
34、(T.data[k].v==0))printf("超出行列定义范围,请重新输入!");}while((T.data[k].i<0
35、
36、T.data[k].i>T.mu)
37、
38、(T.
39、data[k].j<0
40、
41、T.data[k].j>T.nu)
42、
43、(T.data[k].v==0));printf("*********************************************************");}return;}//*********输出矩阵函数********//voiddisplay(TSMastrixM){intq,n,k,a=0;printf("-----------