c矩阵相乘源代码(c++矩阵相乘)
admin 发布:2022-12-19 21:17 132
今天给各位分享c矩阵相乘源代码的知识,其中也会对c++矩阵相乘进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、用c语言实现两个矩阵相乘怎么做?
- 2、求C语言编写矩阵相乘程序
- 3、C语言编程求矩阵乘积
- 4、哪位大虾有用C语言实现矩阵相乘的函数源代码
- 5、求C语言源代码:从键盘输入两个矩阵,输出这两个矩阵和这两个矩阵相乘的矩阵?
用c语言实现两个矩阵相乘怎么做?
1、程序运行输入数据时,第一行为A矩阵的行列数和B矩阵的行列数,接着分别输入A、B两个矩阵的值。
2、首先,定义6个整型变量,保存A、B矩阵的行和列,以及控制循环的变量,k则用于实现矩阵的乘法。
3、接着,定义三个整型二维数组,保存A、B和C矩阵的各元素。
4、输入三个矩阵的行数和列数,保存在变量a、b、c中。
5、输入矩阵A的各元素,保存在数组X中。
6、输入矩阵B的各元素,保存在数组Y中。
7、将二维数组Z的各元素,初始化为0。
8、用两层for循环,控制矩阵的乘法,并输出乘法所得的结果。
9、计算A矩阵和B矩阵的乘法,结果保存在数组Z中。
10、最后,输出乘法所得的结果,即输出Z数组中的所有元素。
11、运行程序,输入矩阵A和B的行数和列数,以及A矩阵和B矩阵的所有元素,电脑就会计算出乘积C矩阵的所有元素,并输出C矩阵。
求C语言编写矩阵相乘程序
void matrix(int b[][X],int c[][Y])
{
int i,j,k,temp;
for(i=0;iX;i++)
for(j=0;jY;j++){
for(k=0;kY;k++)
a[i][j]+=b[i][k]*c[k][j];
}
}
例如(完整程序):
#include stdio.h
#include stdlib.h
#define X 3
#define Y 3
int a[X][Y];
int b[X][Y];
int c[X][Y];
void matrix(int b[][X],int c[][Y]);
main()
{
int i,j,temp;
printf("Please input int matrix b[%d][%d]\n",X,Y);
for(i=0;iY;i++)
for(j=0;jY;j++){
scanf("%d",temp);
b[i][j]=temp;
}
printf("Please input int matrix c[%d][%d]\n",X,Y);
for(i=0;iX;i++)
for(j=0;jY;j++){
scanf("%d",temp);
c[i][j]=temp;
}
matrix(b,c);
printf("Now print resource matrix b[%d][%d]=",X,Y);
for(i=0;iX;i++){
printf("\n");
for(j=0;jY;j++)
printf("%d ",b[i][j]);
}
printf("\n");
printf("Now print resource matrix c[%d][%d]=",X,Y);
for(i=0;iX;i++){
printf("\n");
for(j=0;jY;j++)
printf("%d ",c[i][j]);
}
printf("\n");
printf("Now printm multiply results matrix a[%d][%d]=B*C:",X,Y);
for(i=0;iX;i++){
printf("\n");
for(j=0;jY;j++)
printf("%d ",a[i][j]);
}
getch();
return 0;
}
void matrix(int b[][X],int c[][Y])
{
int i,j,k,temp;
for(i=0;iX;i++)
for(j=0;jY;j++){
for(k=0;kY;k++)
a[i][j]+=b[i][k]*c[k][j];
}
}
C语言编程求矩阵乘积
#define MAX 50
#define M MAX
#define N MAX
#define T MAX
#define S MAX
int Mult(double a[][N],int m,int n,double b[][T]int s,int t,double c[][T]) {
int i,j,k;
if(n != s) {
printf("两矩阵相乘,左矩阵的列数与右矩阵的行数必须相等。\n");
return 0;
}
int c;
tmp.m_Mat = new double *[tmp.m_Rows];
for(int i = 0;i tmp.m_Rows;i++) tmp.m_Mat[i] = new double[tmp.m_Cols];
for(i = 0; i m; ++i) {
for(j = 0; j n; ++j) {
c[i][j] = 0;
for(k = 0; k t; ++k)
c[i][j] += c[i][k] * c[k][j];
}
}
return 1;
}
哪位大虾有用C语言实现矩阵相乘的函数源代码
// c[m][l] = a[m][n] * b[n][l]
// a,b,c均为一维数组,a的长度为m*n,b的长度为n*l,c的长度为m*l
void Cheng(float* a, float* b, float* c, int m, int n, int l)
{
for(int i = 0; i m; i++ )
for(int j = 0; j l; j++ )
{
c[i*l+j] = 0.0;
for(int k = 0; k n; k++ )
c[i*l+j] += a[i*n+k]*b[k*l+j];
}
}
望采纳,谢谢
求C语言源代码:从键盘输入两个矩阵,输出这两个矩阵和这两个矩阵相乘的矩阵?
写的有点烦了,不过你看的懂就可以:
#include iostream
#include vector
#include algorithm
#include stdio.h
#include string.h
using namespace std;
typedef vectorvectorint matrix;
typedef vectorint row;
void GetMatrix(matrix m)
{
row tmp;
int n;
size_t size = 0;
while(cin.peek() != '#')
{
cin.unsetf(ios::skipws);
while(cin cin.peek() != '\n')
{
while(cin.peek() == ' ')
cin.get();
if(cin.peek() == '#')
break;
cin n;
while(cin.peek() == ' ')
cin.get();
tmp.push_back(n);
}
if(cin.peek() != '#')
cin.get();
if(!cin)
{
cerr "ERROR: Invalid input characters.\n";
exit(0);
}
if(size != 0 size != tmp.size())
{
cerr "ERROR: Jagged matrix not allowed.\n";
exit(0);
}
size = tmp.size();
m.push_back(tmp);
tmp.clear();
}
cin.ignore(512, '\n');
}
void PrintMatrix(const matrix m)
{
static char num[32];
int max = *max_element(m[0].begin(), m[0].end());
int n;
for(size_t i = 1; i m.size(); ++i)
if(max (n = *max_element(m[i].begin(), m[i].end())))
max = n;
sprintf(num, "%d", max);
cout.setf(ios::left);
for(size_t i = 0; i m.size(); ++i)
{
for(size_t j = 0; j m[i].size(); ++j)
{
cout.width(strlen(num));
cout m[i][j] ' ';
}
cout '\n';
}
}
void MatrixMul(const matrix m1, const matrix m2, matrix product)
{
if(m1[0].size() != m2.size())
{
cerr "Candidate not allowed.\n";
cerr "If m1 is a m * n matrix so m2 must be a n * p matrix.\n";
exit(0);
}
for(size_t i = 0; i m1.size(); ++i)
{
product.push_back(row());
for(size_t j = 0; j m2[0].size(); ++j)
{
product[i].push_back(0);
for(size_t k = 0; k m1[0].size(); ++k)
product[i][j] += m1[i][k] * m2[k][j];
}
}
}
int main()
{
matrix m1, m2, m3;
cout "Enter matrix1:\n";
GetMatrix(m1);
cout "\nEnter matrix2:\n";
GetMatrix(m2);
MatrixMul(m1, m2, m3);
cout "\n\nmatrix 1: " m1.size() " × " m1[0].size() '\n';
PrintMatrix(m1);
cout "\n\nmatrix 2: " m2.size() " × " m2[0].size() '\n';
PrintMatrix(m2);
cout "\n\nm1 * m2: " m3.size() " × " m3[0].size() '\n';
PrintMatrix(m3);
}
关于c矩阵相乘源代码和c++矩阵相乘的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-12微博营销技巧,微博营销技巧矩阵法则有
- 05-07pb超级报表源代码(pb报表工具)[20240507更新]
- 05-07简历源代码可以上传照片的简单介绍[20240507更新]
- 05-07广告切换源代码免费下载(广告切换源代码免费下载安装)[20240507更新]
- 05-06阁楼网源代码(阁楼是什么网站)[20240506更新]
- 05-06源代码管理资源管理器(资源管理器运行代码)[20240506更新]
- 05-06人脸识别源代码pdf的简单介绍[20240506更新]
- 05-06包含超市管理系统java源代码的词条[20240506更新]
- 05-06商城app源代码免费(商城App源码)[20240506更新]
- 05-06包含游戏源代码不同的模式的词条[20240506更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接