资源描述:
《电子科大C语言实验10》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#include#includetypedefstruct{double**mat;introw;intcol;}Matrix;Matrixmax;intmain(){voidInitialMatrix(Matrix*T,introw,intcol);//只分配空间不初始化;voidInitialMatrixZero(Matrix*T,introw,intcol);//初始化为0voidInitialMatrixRand(Matrix*T,introw,intcol);/
2、/初始化为50以内随机正整数voidInputMatrix(Matrix*T);//键盘输入矩阵voidDestroyMatrix(Matrix*T);//释放矩阵空间voidPrintfMatrix(Matrix*T);//矩阵输出intAddMatrix(Matrix*A,Matrix*B,Matrix*C);//矩阵加intMinusMatrix(Matrix*A,Matrix*B,Matrix*C);//矩阵减intMultiMatrix(Matrix*A,Matrix*B,Matrix*C);//矩阵乘法doubleMeanMat
3、rix(Matrix*T);//矩阵元素均值intSubMatrix(Matrix*T1,Matrix*T2,intBeginRow,intBeginCol,intEndRow,intEndCol);//求T1的子矩阵T2;srand((unsigned)time(NULL));//用时间做种intn;printf("矩阵函数测试,请选择功能,输入对应的数字:");printf("***************************************************");printf("1:输入一个矩阵,求矩阵均值;
4、");printf("2:产生一个随机数矩阵,求矩阵均值;");printf("3:输入两个个矩阵,求矩阵和;");printf("4:输入两个个矩阵,求矩阵差;");printf("5:输入两个个矩阵,求矩阵积;");printf("6:产生两个个随机数矩阵,求矩阵和;");printf("7:产生两个个随机数矩阵,求矩阵差;");printf("8:产生两个个随机数矩阵,求矩阵积;");printf("9:求矩阵的子阵,如矩阵的2-4行,1-3列的子阵;");printf("0:结束!");sca
5、nf("%d",&n);if(n==0)exit(0);Matrixm,p,q;printf("输入矩阵的行数");scanf("%d",&m.row);printf("输入矩阵的列数");scanf("%d",&m.col);InitialMatrix(&m,m.row,m.col);//分配内存空间InitialMatrixZero(&m,m.row,m.col);//初始化为0if(n>2&&n<10&&n!=5&&n!=8&&n!=9)//如果要用到三个矩阵为其余两个分配空间并初始化{p.row=m.row;p.col=m.
6、col;q.row=m.row;q.col=p.col;InitialMatrix(&p,p.row,p.col);InitialMatrixZero(&p,p.row,p.col);InitialMatrix(&q,q.row,q.col);InitialMatrixZero(&q,q.row,q.col);}if(n==5
7、
8、n==8)//如果需要用到可以相乘的矩阵进行如下操作{p.row=m.col;p.col=rand()%10;q.row=m.row;q.col=p.col;InitialMatrix(&p,p.row,p.col
9、);InitialMatrixZero(&p,p.row,p.col);InitialMatrix(&q,q.row,q.col);InitialMatrixZero(&q,q.row,q.col);}switch(n){case1://输入一个矩阵,求矩阵均值;{InputMatrix(&m);printf("%f",MeanMatrix(&m));DestroyMatrix(&m);break;}case2://产生一个随机数矩阵,求矩阵均值;{InitialMatrixRand(&m,m.row,m.col);printf("%f
10、",MeanMatrix(&m));DestroyMatrix(&m);break;}case3://输入两个个矩阵,求矩阵和;printf("请输入矩阵一(%d*%d):