矩阵乘法是大学矩阵课程中,相比矩阵加减法比较困难的部分。

矩阵乘法的原理:

矩阵乘法在代码中实现

得到目标矩阵的一个元素,涉及两个求和符号,一个求和符号一个for循环,两个求和符号两个for循环,再加上是二维数组,再加一个for循环

以下呈现出代码

/*程序的版权和版本声明部分:
**Copyright(c) 2017,电子科技大学本科生三年级学生
**All rights reserved.
**文件名:矩阵乘法
**程序作用:矩阵乘法
**作者:Amoshen
**完成日期:2016.10.26 更新日期:2017.11.29
**版本号:V2.0
*/
#include <iostream>
using namespace std;
#define MAX_SIZE 10
int main(void)
{
int i = 0, j = 0, m = 0, NumOfRowA, NumOfColA, NumOfColB, s = 0;//i为第一矩阵(A)的行变量,j为第一矩阵的列变量,同时为第二矩阵的列变量,m为第二矩阵(B)的列变量
int a[MAX_SIZE][MAX_SIZE], b[MAX_SIZE][MAX_SIZE], c[MAX_SIZE][MAX_SIZE];//MAX_SIZE为二维数组最大值。因为二维数组不能长度不能为变量,所以找个最大值(如果各位有什么其他解决这个问题,请指教)
cout << "输入的行列数均不能大于10!!!!" << endl;
cout << "请输入A矩阵相关信息:" << endl;
cout << "行 NumOfRowA = ";
cin >> NumOfRowA;
cout << "列 NumOfColA = ";
cin >> NumOfColA;
cout << "请输入B矩阵相关信息:" << endl;
cout << "由于矩阵乘法,前矩阵的列数必须等于后矩阵的行数,故B矩阵只需输入列数" << endl;
cout << "列 NumOfColB = ";
cin >> NumOfColB;
//用户自定义矩阵元素
cout << "输入方式:1 0 0 0 1 0 0 0 1" << endl << "代表:" << endl << "1 0 0\n0 1 0\n0 0 1\n";
cout << "请输入A矩阵的元素" << endl;
for (i = 0; i < NumOfRowA; i++)
{
for (j = 0; j < NumOfColA; j++)
{
cin >> a[i][j];
}
}
cout << "请输入B矩阵的元素" << endl;
for (j = 0; j < NumOfColA; j++)
{
for (m = 0; m < NumOfColB; m++)
{
cin >> b[j][m];
}
}
//矩阵乘法的实现
for (i = 0; i < NumOfRowA; i++)
{
for (m = 0; m < NumOfColB; m++)
{
for (j = 0; j < NumOfColA; j++)
{
s = s + a[i][j] * b[j][m];
}
c[i][m] = s;
s = 0;
}
}
cout << "矩阵乘法的结果:" << endl;
//输出矩阵结果
for (i = 0; i < NumOfRowA; i++)
{
for (j = 0; j < NumOfColB; j++)
{
cout << c[i][j] << "\t";
}
cout << endl;
}
return 0;
}

【C++小白成长撸】--矩阵乘法程序的更多相关文章

  1. 【C++小白成长撸】--(续)单偶数N阶魔方矩阵

    1 /*程序的版权和版本声明部分: **Copyright(c) 2016,电子科技大学本科生 **All rights reserved. **文件名:单偶数N阶魔方矩阵 **程序作用:单偶数N阶魔 ...

  2. 【C++小白成长撸】--N阶幻方(魔阵)矩阵

    解决方法:1.第一个元素放在第一行中间一列 2.下一个元素存放在当前元素的上一行.下一列. 3.如果上一行.下一列已经有内容,则下一个元素的存放位置为当前列的下一行. 在找上一行.下一行或者下一列的时 ...

  3. 【C++小白成长撸】--(续)双偶数N阶魔阵

    原理: 把双偶数N阶魔阵均分为(N/4)^2个4阶魔阵(4*4) 每个魔阵的对角线都标为"-1",其余位置标为"0" 从第一个位置(a[0][0])从左到右,从 ...

  4. 【ACM小白成长撸】--贪婪法解硬币找零问题

    question:假设有一种货币,它有面值为1分.2分.5分和1角的硬币,最少需要多少个硬币来找出K分钱的零钱.按照贪婪法的思想,需要不断地使用面值最大的硬币.如果找零的值小于最大的硬币值,则尝试第二 ...

  5. 【小白成长撸】--Fibonacci

    /*程序的版权和版本声明部分: *Copyright(c) 2016,电子科技大学本科生 *All rights reserved. *文件名:Fibonacci *程序作用:计算菲薄拉稀数列 *作者 ...

  6. 【ACM小白成长撸】--计算单词个数

    我判断单词个数的方法,根据空格‘ ’的个数 分情况 当没有单词的时候 判断第一个符号,即a[0] == ‘\0’时,赋值给存储个数的数组 当遇到空格时,只有前面一个字符不是空格字符,后面一个字符不是空 ...

  7. 【小白成长撸】--多项式求圆周率PI

    /*程序的版权和版本声明部分: *Copyright(c) 2016,电子科技大学本科生 *All rights reserved. *文件名:多项式求PI *程序作用:计算圆周率PI *作者:Amo ...

  8. 【小白成长撸】--链栈(C语言版)

    // 链栈.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdio.h> #include <st ...

  9. 【小白成长撸】--顺序栈(C语言版)

    // 顺序栈.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h"//test1.0--栈表仅限Int类型 #include <stdio. ...

随机推荐

  1. rpmrebuild备份glibc

    任务: 备份已安装的glibc为RPM包,还原. 准备: 下载rpmrebuild 上传至服务器 链接: https://pan.baidu.com/s/1pKNGnur 密码: wgy9 操作: 1 ...

  2. HTML中的target标记

    HTML:target=_blank -- 在新窗口中打开链接 _parent -- 在父窗体中打开链接 _self -- 在当前窗体打开链接,此为默认值 _top -- 在当前窗体打开链接,并替换当 ...

  3. Unicode、UTF-8 和 ISO8859-1到底有什么区别

    说明:本文转载于新浪博客,旨在方便知识总结.原文地址:http://blog.sina.com.cn/s/blog_673c81990100t1lc.html 本文主要包括以下几个方面:编码基本知识, ...

  4. asp.net core 2.0 Microsoft.Extensions.Logging 文本文件日志扩展

    asp.net core微软官方为日志提供了原生支持,有如下实现 Console Debug EventLog AzureAppServices TraceSource EventSource 并且在 ...

  5. 流畅python学习笔记:第十七章:并发处理

    第十七章:并发处理 本章主要讨论Python3引入的concurrent.futures模块.在python2.7中需要用pip install futures来安装.concurrent.futur ...

  6. HTML5 新点总结-持续

    H5新的表单元素:datalist datalist的表现形式和原先的select标签相似,但是datalist想要发挥作用需要input标签的帮助:这样就可以在input标签中显示类似select下 ...

  7. Python 第五天

    函数式编程 高阶函数 1.变量可指向函数 func = abs print(func(-1)) #1 2.函数可以作为参数传入另外的函数这也就是高阶函数 def add(x,y,func): prin ...

  8. Redis的部署及使用

    Redis Memcached与Redis的对比 Memcached: 优点: 1. 纯set get性能好 2. 开发都会用,易用简单 4. 可用于存放session 缺点: 1. 不支持持久化 2 ...

  9. Hibernate2---- 查询单条记录

    1.根据已完成的Hibernate1基础案例,我们接下来写一下查询,修改删除,对于基础生可以学习一下 只改写一下测试类的代码 private void findStudent() { //02Hibe ...

  10. Action和Fuc的区别

    Action和Fuc的区别,参数和具体用法