//任务二:矩阵的基本运算#includestdio.h#includestdlib.h#defineR14//矩阵MA行数,可以按具体情况修改#defineC14//矩阵MA列数,可以按具体情况修改#defineR24//矩阵MB行数,可以按具体情况修改#defineC24//矩阵MB列数,可以按具体情况修改voidScalar(floatMA[][C1]);voidTransposition(floatMA[][C1]);voidAdd(floatMA[][C1],floatMB[][C2]);voidSubtraction(floatMA[][C1],floatMB[][C2]);voidMultiplication(floatMA[][C1],floatMB[][C2]);voidmain(){floatMA[R1][C1],MB[R2][C2];intc;while(1){printf(功能如下:\n);printf(数乘矩阵1\n);printf(矩阵转换2\n);printf(矩阵相加3\n);printf(矩阵相减4\n);printf(矩阵乘法5\n);printf(结束0\n);printf(请选定您需要的操作:\n);scanf(%d,&c);switch(c){case1:Scalar(MA);break;case2:Transposition(MA);break;case3:if((R1==R2)&&(C1==C2))Add(MA,MB);elseprintf(矩阵MA与矩阵MB不能相减!\n);break;case4:if((R1==R2)&&(C1==C2))Subtraction(MA,MB);elseprintf(矩阵MA与矩阵MB不能相加!\n);break;case5:if(C1==R2)Multiplication(MA,MB);elseprintf(矩阵MA与矩阵MB不能相乘!\n);break;case0:printf(结束!\n);exit(0);break;default:printf(对不起,您的输入不合法!\n);break;}}}voidScalar(floatMA[][C1])//矩阵数乘函数{inti,j,k;printf(请输入乘数:\n);scanf(%d,&k);printf(请输入%d*%d矩阵MA(每行以回车结束):\n,R1,C1);for(i=0;iR1;i++){for(j=0;jC1;j++){scanf(%f,&MA[i][j]);}}printf(%d乘矩阵MA结果为:\n,k);for(i=0;iR1;i++){for(j=0;jC1;j++){printf(%6.2f,k*MA[i][j]);}printf(\n);}}voidTransposition(floatMA[][C1])//矩阵转置函数{inti,j;floatMD[C1][R1]={0};printf(请输入%d*%d矩阵MA(每行以回车结束):\n,R1,C1);for(i=0;iR1;i++){for(j=0;jC1;j++){scanf(%f,&MA[i][j]);}}for(i=0;iR1;i++)//将矩阵MA的第n行的值赋给矩阵MD的第n列{for(j=0;jC1;j++){MD[j][i]=MA[i][j];}}printf(矩阵MA转置后的结果为:\n);for(i=0;iC1;i++){for(j=0;jR1;j++){printf(%6.2f,MD[i][j]);}printf(\n);}}voidAdd(floatMA[][C1],floatMB[][C2])//矩阵加法函数{inti,j;floatME[R1][C1]={0};printf(请输入%d*%d矩阵MA(每行以回车结束):\n,R1,C1);for(i=0;iR1;i++){for(j=0;jC1;j++){scanf(%f,&MA[i][j]);}}printf(请输入%d*%d矩阵MB(每行以回车结束):\n,R2,C2);for(i=0;iR2;i++){for(j=0;jC2;j++){scanf(%f,&MB[i][j]);}}for(i=0;iR1;i++){for(j=0;jC1;j++){ME[i][j]=MA[i][j]+MB[i][j];}}for(i=0;iR1;i++){for(j=0;jC1;j++){printf(%6.2f,ME[i][j]);}printf(\n);}}voidSubtraction(floatMA[][C1],floatMB[][C2])//矩阵减法函数{inti,j;floatMF[R1][C1]={0};printf(请输入%d*%d矩阵MA(每行以回车结束):\n,R1,C1);for(i=0;iR1;i++){for(j=0;jC1;j++){scanf(%f,&MA[i][j]);}}printf(请输入%d*%d矩阵MB(每行以回车结束):\n,R2,C2);for(i=0;iR2;i++){for(j=0;jC2;j++){scanf(%f,&MB[i][j]);}}for(i=0;iR1;i++){for(j=0;jC1;j++){MF[i][j]=MA[i][j]-MB[i][j];}}for(i=0;iR1;i++){for(j=0;jC1;j++){printf(%6.2f,MF[i][j]);}printf(\n);}}voidMultiplication(floatMA[][C1],floatMB[][C2])//矩阵相乘函数{inti,j,k;floatMG[R1][C2]={0};printf(请输入%d*%d矩阵MA(每行以回车结束):\n,R1,C1);for(i=0;iR1;i++){for(j=0;jC1;j++){scanf(%f,&MA[i][j]);}}printf(请输入%d*%d矩阵MB(每行以回车结束):\n,R2,C2);for(i=0;iR2;i++){for(j=0;jC2;j++){scanf(%f,&MB[i][j]);}}for(i=0;iR1;i++){for(j=0;jC2;j++){for(k=0;kC1;k++){MG[i][j]=MG[i][j]+MA[i][k]*MB[k][j];}}}for(i=0;iR1;i++){for(j=0;jC2;j++){printf(%6.2f,MG[i][j]);}printf(\n);}}