/*
编程求两个矩阵相乘的结果。输入第一行是整数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++两个矩阵相乘的更多相关文章

  1. 实现两个矩阵相乘的C语言程序

    程序功能:实现两个矩阵相乘的C语言程序,并将其输出 代码如下: #include "stdafx.h" #include "windows.h" void Mu ...

  2. POJ 2246 Matrix Chain Multiplication(结构体+栈+模拟+矩阵相乘)

    题意:给出矩阵相乘的表达式,让你计算需要的相乘次数,如果不能相乘,则输出error. 思路: 参考的网站连接:http://blog.csdn.net/wangjian8006/article/det ...

  3. Strassen 矩阵相乘算法(转)

    偶尔在算法课本上面看到矩阵相乘的算法,联想到自己曾经在蓝桥杯系统上曾经做过一道矩阵相乘的题目,当时用的是普通的矩阵相乘的方法,效率极低,勉强通过编译.所以决定研究一下Strassen矩阵相乘算法,由于 ...

  4. Opencv中Mat矩阵相乘——点乘、dot、mul运算详解

    Opencv中Mat矩阵相乘——点乘.dot.mul运算详解 2016年09月02日 00:00:36 -牧野- 阅读数:59593 标签: Opencv矩阵相乘点乘dotmul 更多 个人分类: O ...

  5. excel矩阵相乘矩阵求逆

    如何用电子表格计算两个矩阵相乘 https://jingyan.baidu.com/article/219f4bf7c9039cde452d3854.html   工具/原料 Microsoft Ex ...

  6. <矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置>

    //矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置 #include<stdio.h> #include<stdlib.h> #define M 2 #define N 3 #d ...

  7. 利用Hadoop实现超大矩阵相乘之我见(二)

    前文 在<利用Hadoop实现超大矩阵相乘之我见(一)>中我们所介绍的方法有着“计算过程中文件占用存储空间大”这个缺陷,本文中我们着重解决这个问题. 矩阵相乘计算思想 传统的矩阵相乘方法为 ...

  8. 利用Hadoop实现超大矩阵相乘之我见(一)

    前记 最近,公司一位挺优秀的总务离职,欢送宴上,她对我说“你是一位挺优秀的程序员”,刚说完,立马道歉说“对不起,我说你是程序员是不是侮辱你了?”我挺诧异,程序员现在是很低端,很被人瞧不起的工作吗?或许 ...

  9. MapReduce实现矩阵相乘

    矩阵相乘能够查看百度百科的解释http://baike.baidu.com/view/2455255.htm?fr=aladdin 有a和b两个矩阵 a:                1   2   ...

随机推荐

  1. BZOJ.3698.XWW的难题(有源汇上下界最大流ISAP)

    题目链接 按套路行列作为两部分,连边 \(S->row->column->T\). S向代表行的元素连边cap(A[i][n])(容量上下界为上下取整),代表列的元素向T连边cap( ...

  2. Spring(完成毕业设计后的简单回顾)

    最近刚刚做完了毕业设计,在开发时用的是spring框架,做的时候踩了好多坑,又把当初的笔记给翻了翻,做一次简单的回顾 # 1.Spring是什么? 是一个开源的.用于简化企业级应用开发的应用开发框架. ...

  3. 关于dubbo服务的xml配置文件报错的问题

    在配置dubbo服务的过程中,经常会遇到虽然程序能够跑起来,但是配置文件一堆红叉,虽然不影响功能,但是确实很让人恶心. 报错信息如下: Multiple annotations found at th ...

  4. oracle创建透明网关出现的问题

    解决方案:创建HS_TRANSACTION_LOG表 DROP TABLE HS_TRANSACTION_LOG go CREATE TABLE HS_TRANSACTION_LOG( GLOBAL_ ...

  5. Android中pm命令用法(转)

    usage: pm [list|path|install|uninstall] pm list packages [-f] pm list permission-groups pm list perm ...

  6. 一种高效的序列化方式——MessagePack

    最近在弄一些数据分析方面的内容,发现很多时候数据瓶颈在模块之间的数据序列化和反序列化上了,原来项目中用的是Json,找了一圈发现Json.net在Json序列化库中已经是性能的佼佼者了,便准备从序列化 ...

  7. UIScrollView 遇到的小坑

    在做一个 UIScrollView  展示的时候 ,须要计算 contentSize 的高度,于是 我遍历了一下 UIScrollView 全部的子view的高度累加 然后得出 高度 .奇怪的是 发现 ...

  8. 未能加载文件或程序集“System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项

    在发布网站时遇到如题错误. 错误消息详细信息:未能加载文件或程序集“System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=3 ...

  9. Memory access Tracing/Profiling

    https://mahmoudhatem.wordpress.com/2017/03/22/workaround-for-linux-perf-probes-issue-for-oracle-trac ...

  10. Unity3D实践系列09, 物理引擎与碰撞检测

    在Unity3D中,一个物体通常包含一个Collider和一个Rigidbody.Collider是碰撞体,一个物体是Collider,才可以进行碰撞检测.Collider组件中的"Is T ...