《用C语言实现矩阵运算》由会员分享,可在线阅读,更多相关《用C语言实现矩阵运算(11页珍藏版)》请在金锄头文库上搜索。
1、/任务二:矩阵旳基本运算#include#icluddine R1 /矩阵行数,可以按具体状况修改#deine C 4/矩阵M列数,可以按具体状况修改#dfne R24矩阵M行数,可以按具体状况修改define 2 4/矩阵MB列数,可以按具体状况修改oid clar(float MAC);void Transoton(flot AC1);voi dd(flat MAC1,floatMBC2);void Sutraction(flat MA1,flt BC);void Multiplicatio(loat A,oat MBC2);vidain()lat AR11,MBR22;int c;wil
2、e() pritf(功能如下:n); pint(数乘矩阵 n); pf(矩阵转换2n); prntf(矩阵相加3n); pintf(矩阵相减 n); pin(矩阵乘法 ); rinf(结束 0); rintf(请选定您需要旳操作:); scanf(%,&); swtc() case1: Scaa(MA); break; se 2: Tanspositon(M); brea; cs 3: if(=2)&(1=2)) Ad(M,MB); es printf(矩阵M与矩阵B不能相减!); brea; case : if((R12)&(C1=C2) Subraction(A,MB); else pri
3、tf(矩阵MA与矩阵不能相加!); rak; cas 5: f(=R) ltpicatin(MA,M); ese rit(矩阵MA与矩阵B不能相乘!n); reak; as : in(结束!n); ex(0); reak; eaut: printf(对不起,您旳输入不合法!); rak; oid Scala(float MAC1)/矩阵数乘函数inti,j,k;prit(请输入乘数:n);saf(%d,&);rit(请输入%*%d矩阵A(每行以回车结束):,R1,C1);or(i=0;iR1;+)for(j0;C1;j+)scaf(%f,&MAij);pntf(%d乘矩阵MA成果为:n,k);
4、fo(i=0;iR1;i+)fo(j=0;j1;j+)printf(%6.2 ,kM);prinf(n);vd Tnspositio(fot MA1)/矩阵转置函数it i,j;at MDC1R1=0;printf(请输入d*%d矩阵MA(每行以回车结束):,1,);for(i=0;i+)for(j=;C1;+)sca(%f,MAij);fr(=0;iR;+)/将矩阵M旳第行旳值赋给矩阵MD旳第n列for(j=;C1;j+)MDji=MAij;print(矩阵MA转置后旳成果为:n);fo(i=0;iC1;+)for(=;R;j+)prin(%6.2f,Mij);rinf(n);od (loa
5、MAC1,fatMC2)/矩阵加法函数in i,;floa MER11=;rnt(请输入%d矩阵A(每行以回车结束):n,R1,C1);for(i=0;iR1;i+)for(j=0;jC1;+)cf(,&MAij); printf(请输入%d%矩阵(每行以回车结束):n,R2,C2);or(i=;iR;i+)for(j=0;C2;j+)scnf(f,&MBij); f(i0;iR;+)fr(j=0;jC;+)MEj=MAj+MB;for(i=0;R1;i+)for(j=0;C;j+) printf(%62f ,MEij);pitf();voi Subtraction(fatMAC1,float
6、 M2)/矩阵减法函数ti,j;float MFR1C1=0;printf(请输入%d*矩阵M(每行以回车结束):n,R1,C1);for(i=;iR1;i+)for(=0;jC;j+)scf(f,MAj); pritf(请输入%d%d矩阵B(每行以回车结束):n,R,C2);fr(=0;iR2;+)for(j=;jC;j+)scanf(%,&Mj); for(i0;R;i+) r(j=0;jC;j+) MFjMi-Bi;r(i=0;i1;i+)(j;jC1;j+) pint(%2f ,Mij);prif(n);oid Multiplcato(foat MC1,flat MBC2)矩阵相乘函数nti,j,;flot MGR120;prntf(请输入%*%d矩阵A(每行以回车结束):n,R1,1);fr(0;1;i+)for(j=0;jC;j+)scaf(%f,&Mij); pintf(请输入%d%d矩阵MB(每行以回车结束):n,R,C2);fr(0;iR;+)for(j=0;jC2;+)scanf(f,MBij); fr(i=0;iR1;+)for(j=0;jC;j)for(k=0;C1;k+)GijMGijMik*MBk;for(i=0;i;i+)fr(j=0;C;j+)printf(%6.2f ,Gi);print();