数学建模社区-数学中国

标题: 我的矩阵乘法程序 [打印本页]

作者: abcd123654321    时间: 2007-1-14 13:19
标题: 我的矩阵乘法程序
<p>这是我遍的矩阵乘法的程序,大家一起探讨一下,有没有更好,更精巧的算法.谢谢了</p><p>#include "stdio.h"<br/>#define M 3<br/>#define N 2<br/>#define L 4</p><p>void jzcf(int array[M][N],int boy[N][L],int&nbsp; c[M][L])<br/>{<br/>&nbsp;&nbsp;&nbsp; int m,n,l;<br/>&nbsp;for(m=0;m&lt;M;m++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*运算矩阵1和矩阵2的乘积的子函数*/<br/>&nbsp;&nbsp;&nbsp; for(l=0;l&lt;L;l++)<br/>&nbsp;&nbsp; {for(n=0;n&lt;N;n++) <br/>&nbsp;&nbsp; &nbsp;c[m][l]=c[m][l]+array[m][n]*boy[n][l];<br/>&nbsp;&nbsp; }<br/>&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>main()<br/>{/*求矩阵乘法的程序*/<br/>&nbsp;int a[M][N],b[N][L],c[M][L]={0};<br/>int m,n,l,i;<br/>do<br/>{<br/>&nbsp;printf("请输入矩阵1的值:\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*输入矩阵1的值*/<br/>&nbsp;for(m=0;m&lt;M;m++)<br/>&nbsp;for(n=0;n&lt;N;n++)<br/>{ scanf("%d",&amp;a[m][n]);<br/>&nbsp; <br/>}&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;printf("请输入矩阵2的值:\n");<br/>&nbsp;for(n=0;n&lt;N;n++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*输入矩阵2的值*/<br/>&nbsp;for(l=0;l&lt;L;l++)<br/>{ scanf("%d",&amp;b[n][l]);<br/>&nbsp;&nbsp; <br/>}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp; jzcf(a,b,c);<br/>&nbsp;&nbsp; printf("以下是矩阵1和矩阵2的乘积:\n");<br/>&nbsp;&nbsp; for(m=0;m&lt;M;m++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; for(l=0;l&lt;L;l++)<br/>&nbsp;&nbsp; {printf("%5d",c[m][l]);<br/>&nbsp;&nbsp;&nbsp; if((l+1)%L==0) printf("\n");<br/>}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; printf("想要结束程序请输入0;\n继续程序请输入其他整数。\n");<br/>&nbsp;&nbsp; printf("i=");<br/>&nbsp;&nbsp; scanf("%d",&amp;i);<br/>}&nbsp; while(i==0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*是否执行循环*/<br/>&nbsp;&nbsp; <br/>}<br/></p>




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5