利用二维数组计算两个4*4矩阵的和、差、乘积
利用二维数组计算两个4*4矩阵的和、差、乘积
这个题目要怎么编,我是新手不太会,急求各位帮助~~~~
[解决办法]
这题涉及的知识点就那么几个
1.矩阵的加、减、乘运算的定义;
这个线性代数上就学过了,你作业是怎么做的,这道编程题的算法就是怎么实现的
2.二维数组下标的含义和简单应用;
理解二维数组两个下标的含义,通常用第一个下标表示矩阵的行,第二个表示列
3.循环语句的简单应用
例如矩阵加法,也就是矩阵a[4][4]与b[4][4]相加,得到一个和c[4][4],其中
c[i][j] = a[i][j] + b[i][j] (i,j∈{0,1,2,3})
那么从c[0][0]开始,不断用循环语句给矩阵c的各个元素赋值,最后就得到了两个矩阵的和了么
[解决办法]
可以参考一下这篇文章(http://www.slyar.com/blog/matrixmutiply-c.html)。
[解决办法]
下面是一个矩阵乘法的示例代码,楼主可以借鉴并改写之。
#include <time.h>
#include <iostream>
using namespace std;
void matproduct(int a[][3],int b[][2],int c[][2],int m,int n,int p)
{
for(int i=0;i<m;++i)
{
for(int j=0;j<p;++j)
{
int sum=0;
for(int k=0;k<n;++k)
{
sum+=a[i][k]*b[k][j];
}
c[i][j]=sum;
}
}
}
int main()
{
int a[3][3]={{1,1,1},{2,2,2},{3,3,3}};
int b[3][2]={{4,4},{5,5},{6,6}};
int c[3][2]={0};
matproduct(a,b,c,3,3,2);
for(int i=0;i<3;++i)
{
for(int j=0;j<2;++j)
{
cout<<c[i][j]<<'\t';
}
cout<<endl;
}
return 0;
}
[解决办法]
如果你不希望你的程序只能适用于固定行数和列数的矩阵,可以考虑动态数组,这里是动态数组的实现,希望对你有帮助 http://blog.csdn.net/zhcosin/article/details/8275603