zoukankan      html  css  js  c++  java
  • 【C++小白成长撸】--矩阵乘法程序

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

    矩阵乘法的原理:

    矩阵乘法在代码中实现

    得到目标矩阵的一个元素,涉及两个求和符号,一个求和符号一个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 0 1 0 0 0 1 ";
    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] << " ";
    }
    cout << endl;
    }

    return 0;
    }

  • 相关阅读:
    《那些年啊,那些事——一个程序员的奋斗史》——72
    《那些年啊,那些事——一个程序员的奋斗史》——74
    《那些年啊,那些事——一个程序员的奋斗史》——71
    《那些年啊,那些事——一个程序员的奋斗史》——72
    boost asio 学习(二)了解boost::bind
    boost asio 学习(四)使用strand将任务排序
    boost asio 网络聊天 代码修改学习
    asio 广播代码示例
    c++ 博客资源
    boost::asio 学习草稿
  • 原文地址:https://www.cnblogs.com/zpc-uestc/p/6002243.html
Copyright © 2011-2022 走看看