C++两个矩阵相乘
/*
编程求两个矩阵相乘的结果。输入第一行是整数m,n,表示第一个矩阵式m行n列的;然后是一个m * n的矩阵。
再下一行的输入时整数p,q,表示下一个矩阵p行,q列的(n=p);然后就是一个p行q列的矩阵。
要求输出两个矩阵相乘的结果矩阵(1<m、n、p、q<=8).
P82页
2014年10月3日21:32:23
*/
#include <iostream>
using namespace std;
const int size = 10;
void init(int *, int *, int a[][size]);//初始化数组
void multi(int, int, int, int, int a[][size], int b[][size], int result[][size]);
void print(int, int, int result[][size]);
int main()
{
int m, n, p, q;
int a[size][size];
int b[size][size];
int result[size][size] = { 0 }; //将保存结果的数组初始化为0;
/*
int a[size][size] = { { 2, 4, 5 }, { 2, 1, 3 } }; //初始化数组
int b[size][size] = { { 1, 1, 1 }, { 2, 3, 2 }, { 0, 1, 4 } }; //初始化数组
m = 2;
n = 3;
p = q = 3;
*/
init(&m, &n, a);
init(&p, &q, b);
multi(m, n, p, q, a, b, result);
//print(m, n, a); 检查输入矩阵
//print(p, q, b);
print(m, q, result);
system("pause");
return 0;
}
void multi(int m, int n, int p, int q, int a[][size], int b[][size], int result[][size])
{
if (n == p) //第一个矩阵的列数与第二个矩阵的行数相等时,两个矩阵才能相乘;
for (int i = 0; i < m; i++) //a的行数
{
for (int j = 0; j < q; j++) //b的列数
{
for (int k = 0; k < n; k++) //a的列数
{
result[i][j] += a[i][k] * b[k][j];
}
}
}
else
printf("行数不匹配\n");
}
void print(int m, int q, int result[][size])
{
for (int i = 0; i < m; i++)
{
for (int j = 0; j < q; j++)
{
printf("%d\t", result[i][j]);
}
printf("\n");
}
}
void init(int *pm, int *pn, int a[][size])
{
cin >> *pm >> *pn;
for (int i = 0; i < *pm; i++)
{
for (int j = 0; j < *pn; j++)
{
cin >> a[i][j];
}
}
}
C++两个矩阵相乘的更多相关文章
- 实现两个矩阵相乘的C语言程序
程序功能:实现两个矩阵相乘的C语言程序,并将其输出 代码如下: #include "stdafx.h" #include "windows.h" void Mu ...
- POJ 2246 Matrix Chain Multiplication(结构体+栈+模拟+矩阵相乘)
题意:给出矩阵相乘的表达式,让你计算需要的相乘次数,如果不能相乘,则输出error. 思路: 参考的网站连接:http://blog.csdn.net/wangjian8006/article/det ...
- Strassen 矩阵相乘算法(转)
偶尔在算法课本上面看到矩阵相乘的算法,联想到自己曾经在蓝桥杯系统上曾经做过一道矩阵相乘的题目,当时用的是普通的矩阵相乘的方法,效率极低,勉强通过编译.所以决定研究一下Strassen矩阵相乘算法,由于 ...
- Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘.dot.mul运算详解 2016年09月02日 00:00:36 -牧野- 阅读数:59593 标签: Opencv矩阵相乘点乘dotmul 更多 个人分类: O ...
- excel矩阵相乘矩阵求逆
如何用电子表格计算两个矩阵相乘 https://jingyan.baidu.com/article/219f4bf7c9039cde452d3854.html 工具/原料 Microsoft Ex ...
- <矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置>
//矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置 #include<stdio.h> #include<stdlib.h> #define M 2 #define N 3 #d ...
- 利用Hadoop实现超大矩阵相乘之我见(二)
前文 在<利用Hadoop实现超大矩阵相乘之我见(一)>中我们所介绍的方法有着“计算过程中文件占用存储空间大”这个缺陷,本文中我们着重解决这个问题. 矩阵相乘计算思想 传统的矩阵相乘方法为 ...
- 利用Hadoop实现超大矩阵相乘之我见(一)
前记 最近,公司一位挺优秀的总务离职,欢送宴上,她对我说“你是一位挺优秀的程序员”,刚说完,立马道歉说“对不起,我说你是程序员是不是侮辱你了?”我挺诧异,程序员现在是很低端,很被人瞧不起的工作吗?或许 ...
- MapReduce实现矩阵相乘
矩阵相乘能够查看百度百科的解释http://baike.baidu.com/view/2455255.htm?fr=aladdin 有a和b两个矩阵 a: 1 2 ...
随机推荐
- Hadoop化繁为简(一)-从安装Linux到搭建集群环境
简介与环境准备 hadoop的核心是分布式文件系统HDFS以及批处理计算MapReduce.近年,随着大数据.云计算.物联网的兴起,也极大的吸引了我的兴趣,看了网上很多文章,感觉还是云里雾里,很多不必 ...
- rcp(插件开发)插件B需要引用插件A中的jar包-如何处理依赖关系
如果插件B需要引用插件A中的jar 通常需要以下几步: 1.插件B要依赖插件A 2.在插件B的build path中添加插件A的jar包 3.插件A的runtime导出插件B中使用jar的packag ...
- linux 内核开发环境搭建
http://blog.csdn.net/jemmy858585/article/details/46710299
- 我来科普一下为毛很多人升级了20M的电信光纤宽带反而感觉速度更卡了
下载(在线看视频,看网页,下载游戏这类都是属于下载类应用) 为毛很多人升级20M光纤更慢了呢? 因为电信对你的上传速度做了手脚, 8M以及以上家用光纤宽带全部上传限速到100KB/s 也就是1M带宽 ...
- JAVA 对象序列化(二)——Externalizable
Java默认的序列化机制非常简单,而且序列化后的对象不需要再次调用构造器重新生成,但是在实际中,我们可以会希望对象的某一部分不需要被序列化,或者说一个对象被还原之后,其内部的某些子对象需要重新创建,从 ...
- MyEclipse10安装Log4E插件
一. Log4E插件下载 下载地址:http://log4e.jayefem.de/content/view/3/2/ 二.安装Log4E插件 将下载下来的压缩包解压缩,如下图所示: 解压缩生成的[d ...
- 在ASP.NET Web API中实现CORS(跨域资源共享)
默认情况下,是不允许网页从不同的域访问服务器资源的,访问遵循"同源"策略的原则. 会遇到如下的报错: XMLHttpRequest cannot load http://local ...
- struct对象可能分配在托管堆上吗
struct对象可能被分配在托管堆上吗? --会的. 比如当对struct装箱的时候,就会被分配在托管堆上. 比如,让一个struct实现一个接口. public interface IReport ...
- could not load inserted library: /usr/lib/libgmalloc.dylib
本人也刚开始学习iphone开发,最近维护一个程序时,不知道怎么弄的,不能build到真机了,到模拟器没有什么问题,出现的错误是 :---->>>could not load ins ...
- 从零开始,运行一个android例子程序
电脑上连个eclipse都没装,怎么玩android?一穷二白的你, 下面就跟随我,从零开始,一步一步操作,运行我们的第一个android应用程序.我一直相信,学习开发,只有在调试过程中学的是最快的. ...