在C++编程中,两个excel矩阵相乘函数,用子函数写

C语言题目:输入两个矩阵,a[m][n]和b[n][p];求他们的乘积_百度知道
C语言题目:输入两个矩阵,a[m][n]和b[n][p];求他们的乘积
for(d=0?#include&lt,&n);%lf&输入第一个矩阵 scanf(&d++)
printf(&quot,p;c&lt,h[c][d]);;d&j++)
scanf(&;k&lt.要是C编写的;q;n&quot..h&l&lt.;/m.;/void main(){ double a[100][100];;输入第二个矩阵 for(c=0;n;q;n,&a[i][j]);,k++)/输入行数和列数 for(l=0;&#47,l;p;列数小于等于第二个矩阵的列数
for(i=0,b[100][100];并输入其数值如;/i&lt:9 12 15 19 26 3329 40 51我写的是这样的.,&q);%d %d&quot,&a[l][k]),l&lt,&m;i++,算法比较难看懂噢;,q,c;d&lt,k=0;d++)/k++)
scanf(&/i&行数小于等于第一个矩阵的行数
for(d=0;j&第一个矩阵行数和第二个矩阵列数
for(j=0; }}水平不行,如果不想改的话请帮我写一个;\&#47.,嘿嘿,j,l++)
h[c][d]+=a[i][j]*b[l][k];&#47,k&//i++)
for(j=0,i:输入3 2 1 2 3 4 5 6 2 3 1 2 3 4 5 6输出,d,我琢磨下;%d %d&%lf& scanf(&/j&lt,h[100][100];输出
printf(&c&输入行数和列数 for(i=0;m;计算
} for(c=0;);/q;m,l=0,但错了.0f&q;%,k描述;/l++)
for(k=0;&#47,哪位大神帮我看看,其他没学,n;/j++,&p;/p;c++)&#47:输入两个个矩阵的行 列 m n
提问者采纳
}&&&nbsp,i;//列数小于等于第二个矩阵的列数&0;&q;&printf(&&c&&}&&scanf(&&&&{&&&scanf(&&&m;&&nbsp,d,n;&;&&&&&&&&}&for(k=0;=&k&}&{&&&&{&{&&;&&&&&&&&sum&&&{&&&;&nbsp#include&&&&for(l=0;&&k&for(k=0;&&&&&&&&&&c&int&%lf&&&nbsp,每个都括起来;%d&&q);j++)&&n);&nbsp,h[100][100];&&&&&&&i&//第一个矩阵行数和第二个矩阵列数&&&&&&&&&&nbsp。然后按楼上说的;&&&nbsp,&amp,&);&nbsp,&main(){&nbsp,k;&&&&&&&&&&&&&scanf(&&&&&&&&&&&&&&%lf&&nbsp,j;&c++)&&nbsp,h[c][d]);&&&&&&&&&&&&%d&&nbsp,b[100][100];{&&&//行数小于等于第一个矩阵的行数&&&&d&&&{&&%;&%d&&nbsp,照着公式算;k++)&&m;&&&&&&&//输入第一个矩阵&j&&;&l&&nbsp,输入第二个矩阵要用b然后回去好好翻翻矩阵运算的公式;&&&&&&&nbsp,l;a[i][j]);&l++)&for(d=0;&//输入行数和列数&p;&d++)&&&&&&&&for(j=0;&&&for(d=0.0f&&&&&&&&&a[100][100];&&&&&&nbsp,c;}两处错;&}&&for(c=0;//输入行数和列数&h[c][d]&&//输入第二个矩阵&nbsp,&&k++)&&;&&&&&&nbsp,&&&&double&}&&&&&&&&&&=&for(c=0;&0;&&&int&}&&d++)&&return&+=a[c][k]*b[k][d];&m;m;&&int&for(i=0;&&q;&&&&&nbsp,p;&&&&&i++)&&&&&&&}&nbsp,q;scanf(&&&&&&&{&&c++)&&&n;&&}&&&&&&\n&//计算&&&%d&&&&nbsp,&&&q;{&&&d&&&&&m;&sum&&//输出&printf(&&b[l][k]);&&&nbsp.h&&&&n;&p;&stdio
提问者评价
恩,好的,谢谢啦
来自团队:
其他类似问题
为您推荐:
其他2条回答
#include&stdio.h&
#include&stdlib.h&
double a[100][100],b[100][100],h[100][100]={0};
int m,n,p,q,i,j,k,l,c,d;
scanf(&%d %d&,&m,&n);//输入行数和列数
for(i=0;i&m;i++)
for(j=0;j&n;j++)
scanf(&%lf&,&a[i][j]);//输入第一个矩阵
scanf(&%d %d&,&p,&q);//输入行数和列数
for(l=0;l&p;l++)
for(k=0;k&q;k++)
scanf(&%lf&,&b[l][k]);//输入第二个矩阵
//从此开始修改!!!!!!!!!!!!!!!!!!!!!!
if(p!=n){printf(&不能相乘!\n&);return 0;}
for(c=0;c&m;c++)//行数小于等于第一个矩阵的行数
for(d=0;d&q;d++)//列数小于等于第二个矩阵的列数
for(k=0;k&n;k++)
h[c][d]+=a[c][k]*b[k][d];//计算
最好每个for循环都用{ }
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁编写c++程序,计算两个矩阵的乘积,矩阵相乘设计成函数形式_百度知道
编写c++程序,计算两个矩阵的乘积,矩阵相乘设计成函数形式
c++程序,不知道相乘函数怎么处理
提问者采纳
{&&0&&&0,&&&*out_array)&&&&int&nbsp.parray[1][1];i&&*&printf(&quot.h&&=&print_tmp[0]&&&&(n&&&&nbsp,&**out_array);//i为新生成矩阵的行;&&nbsp.parray[0][0],&nbsp,&&=&a[2][COLUM_NUM]&&nbsp:a[m][n]&int&&}&&&&nbsp,&&{a;print_tmp[0];&&&-1,&2&&2;&cout&p&&&STRU_ARRAY&&j&&&local_array1;&&&&&&;&nbsp,&&&&local_array1;-1;&&&&&&;colum&local_array2;&&&NULL;//行&nbsp,&&&{&&&&%d\n&1&&&result&&0;&int&&&}1&&&&&&(int&sizeof(STRU_ARRAY));&&lt,&for&&func(STRU_ARRAY&{&j&0;&nbsp.parray[1][1];&%d&&&&return&&&;*&&&nbsp,&&&&&&&&=&&STRU_ARRAY&&&b[0][j]&&&&&&&2};&&&&//&&nbsp,&&&{&&&&4&&&&&nbsp.parray_2-&&%d\n&quot,&&&nbsp,4}};}&&&&&&&&int&*parray_2;printf(&parray_2))&local_array1&&nbsp,&&parray_1-&&&&&&*out_array&int&parray_1)&&&&&&&==&&&nbsp,&&&print_tmp&&&&&&iostream&&&&&&0;&&&&&&&&nbsp,&&nbsp.parray[0][1];&{&&nbsp,3};&nbsp,&&&&&&&b[n][p]&nbsp这得用到线性函数啊;&nbsp:;&&&&&#if&&*print_tmp&&1相乘运行结果正确;&&&(int&&&&=&&&&//printf(&&&&&&&+=&&&main(int&&ptmp++;&&&&&=&&&COLUM_NUM&%d&&&&&nbsp,&//&nbsp.2&3&2typedef&&&nbsp,&*)local_out_array-&gt.parray[0][0];&2&(*parray)[COLUM_NUM];==&n++)&&&&return&&&&&&nbsp.row);&&%d&&nbsp.;&&free(local_out_array);&&array{&&3&&(*)[COLUM_NUM])malloc(parray_2-&&&{{1;parray[i][n]&(NULL&&nbsp,&&(int&}int&row)&&print_tmp[2]&&&memset(*out_=&#include&cout&&char&STRU_ARRAY&&&local_array2;row);&&||&local_array1;local_array2;for&parray_1-&&&(i&与4&&&&&&&}&&4&&&local_array2;&&;&nbsp,&%d&nbsp.row);&&&**argv){&0;namespace&\n&&nbsp.parray[0][1];&print_tmp[2];&&&&2};(NULL&local_array2;&&&&nbsp,&&&3&&&p[j]&&&*parray_1;&&(STRU_ARRAY&&&&&local_array1;{b;&if&//&&&& 先分析一下矩阵相乘的算法;return&((NULL&(*out_array)-&&&%d&&&NULL;&&parray&&=&\n&}&STRU_ARRAY&&free(local_out_array-&&&&&&&{3;NULL;int&nbsp,1}};&2&&&&&#endif&&&&if&&*&nbsp,&&0;n&*local_out_array&parray_1-&&&i++)&%d&*parray_2;2;&#define&%d&&&&&&&&&0;&parray)&1&local_array1.h&=&&&&&&&(*out_array)-&&%d&+&nbsp,&&local_array2;&&&=&&&&&&&&parray_1-&&&nbsp,&&&&&&&=&&&&&&int&&&&&local_out_array);&&&&&{&(parray_2-&int&print_tmp[1]),&&**out_array){&a[i][n-1]&%d&&STRU_ARRAY&&int&=&&&&int&int&&nbsp.parray[1][0];&&&&nbsp,&&&colum&&&&&=&&&3&&&&(*out_array)-&&int&&&&&&%d&&nbsp,2};&&NULL;&&&&&nbsp,&=&&STRU_ARRAY&=&%d&&i&==&memset((*out_array)-&gt,&&&&&%d&nbsp.parray[1][0];=&&&&&&print_tmp[1]&&*p&&//&&b[n-1][j]现在我们就可以来写程序了#include&int&{2;&&&&;&&func(STRU_ARRAY&{{4;*&}&parray);&&&&&&&for&0;&&(NULL&&&&&parray_1-&a[i][0]&&&&%d&&}&&n&&&*)malloc(sizeof(STRU_ARRAY));&&0;==&=&&//printf(&&j++)&&local_array2;&&&&&&&&&&&&&&nbsp,&nbsp,&&&=&&&&&c[m][p]其中c[i][j]&&local_array1;#include&&parray[n][j];&print_tmp[3]&using&&=&&int&print_tmp[3]);b[2][COLUM_NUM]&=&&struct&&&+&nbsp,&&=&4&4),&=&local_array2&nbsp,都快忘没了;&(*ptmp)[COLUM_NUM]&nbsp./array 8&&&-1;&&&&&&&&&&&&nbsp.h&&&parray_2-&=&&&(j&&*)&nbsp,&nbsp,j为新生成矩阵的列&STRU_ARRAY&&*&&*parray_1;//列&}STRU_ARRAY.; 520&*&return&&&local_array1;&&ptmp&&%d&#include&if&nbsp.&*&func(&amp
提问者评价
谢谢你,虽然好多看不懂。。。
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁有两个3*3的矩阵,写一个函数完成两个矩阵相加,用主函数调用该函数(矩阵元素子自定),求助_百度知道
有两个3*3的矩阵,写一个函数完成两个矩阵相加,用主函数调用该函数(矩阵元素子自定),求助
提问者采纳
j,j,c是输出结果,只需传入相应参数即可; for(k=0,k;m,l是第二个矩阵维数
int i, int m这两个程序可以实现任意维数矩阵的相加与相乘, double *k++) {
c[l*i+j]=c[l*i+j] +a[n*i+k]*b[j+k*l],m与n是行数和列数i++)
for(j=0;i&lt,a是第一个矩阵;i&lt, double *b, double * c,i++)
for(j=0, int n){
/n;n,b是第二个矩阵;}void Multiply(double *a;j&/j++)
c[i*n+j]=a[i*n+j]+b[i*n+j];/
for(i=0;k&lt。void Add(double *l;m;a是第一个矩阵, int l){ /j&lt,c是输出结果;
for(i=0,b是第二个矩阵,n, double *c;j++)
{ c[l*i+j]=0,m与n是第一个矩阵维数
提问者评价
thank u very much
来自团队:
其他类似问题
为您推荐:
主函数的相关知识
其他3条回答
&& int a[3][3];&j&&&&b[i][j];j++)
cout&&输入矩阵2:&3;&i++) {
for(int j=0; cout &int m[3][3];&;& &quot,int q[3][3]){
for(int i=0;j& cout &j&&&&&& ju(a;&i&3;3;m[i][j]&
for(i=0,b[3][3];
for(i=0;3;i++)
for(j=0;a[i][j];j++)
cout&lt:&3;输出矩阵和:&j++)
for(j=0;3;3;i&
} }}int main(){ 3;&j&i&
for(i=0;i&&lt,b);i++)
for(j=0;void ju(int p[3][3]; cout &lt#include&lt,j;iostream&输入矩阵1;j++)
m[i][j]=p[i][j]+q[i][j]
能注释一下吗?有的地方不是很理解啊,谢谢
谁回的。鐧惧害鍦板浘
本数据来源于百度地图,最终结果以百度地图最新数据为准。
//设计一个程序,完成函数,计算两个3*3矩阵的乘积,保存到另外一个3*3矩阵中。
//设两个矩阵(数组)为a[n][k]和b[k][m]
//需要使用3重循环(i循环,j循环,l循环)来完成乘积。其中,i ,
j 为确定乘积数组c的每个变量,
//内重l 为计算乘积的循环。(注意l的写法,容易与数字1 搞混){{{答案来自东南大学机械工程学院c++菜鸟一名)}}
#include&iostream.h&
#include&iomanip.h&
void product(int a[3][3],int b[3][3])
int i,j,l,sum=0,x=0;
int c[3][3]={0};
for(i=0;i&3;i++)
for(j=0;j&3;j++)
for(l=0;l&3;l++){
c[i][j]+=a[i][l]*b[l][j];//我在这里卡了半个多小时,在网上才查到的!
for(i=0;i&3;i++)
for(j=0;j&3;j++){
cout&&c[i][j]&&setw(4);
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 matlab中矩阵相乘 的文章

 

随机推荐