| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 545 人关注过本帖
标题:矩阵相乘问题
只看楼主 加入收藏
boy_royalty
Rank: 1
等 级:新手上路
帖 子:8
专家分:2
注 册:2011-10-14
结帖率:100%
收藏
 问题点数:0 回复次数:2 
矩阵相乘问题
我同学给我一个矩阵相乘的程序(见附件),谁能还原出源代码?就是到输入完m行n列的时候,接着输入矩阵里的数,怎么才能通过输入的m,n控制键入A11一直到Amn。
矩阵乘法.rar (5.14 KB)
搜索更多相关主题的帖子: 源代码 
2011-10-14 15:01
糖傻猫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:142
注 册:2011-8-9
收藏
得分:0 
新手。下载来看一下下、
2011-10-14 23:09
nomify
Rank: 5Rank: 5
等 级:职业侠客
帖 子:79
专家分:366
注 册:2011-10-13
收藏
得分:0 
程序代码:
#include <iostream>
using namespace std;

void input( int  * * &a, int m, int n ,char c)
{
    a = new int *[m];
    for( int i = 0; i != m; ++i)
    {
        a[i] = new int[n];
        for( int j = 0; j != n; ++j)
        {
            cout << c << i+1 << j+1 << "=";
            cin >> a[i][j];
        }
    }
}

void print( int * * a, int m, int n)
{
    for( int i = 0; i != m; ++i)
    {
        for( int j = 0; j != n; ++j)
            cout << "     " << a[i][j];
        cout << endl ;
    }
    cout << endl << endl ;
}

void matrix_mul(int * * a,int * * b,int  * * &c,int m,int n,int r)
{
    c = new int *[m];
    for(int i=0; i != m; ++i)
    {
        c[i] = new int[r];       
    }

    for( i = 0; i != m; ++i)
    {
        for(int j = 0; j !=r; ++j)
        {
            c[i][j] = 0;
            for (int k = 0; k !=n; ++k)
            {
                c[i][j] += (a[i][k]) * (b[k][j]);
            }
        }
    }

}

void del(int * *a,int m)
{
    for (int i = 0; i != m; ++i)
        delete a[i];
    delete a;
}

int main()
{
    int m,n,r,**A,**B,**C;
    cout << "本程序由nomify制作" << endl << endl << endl << endl << endl;
    cout << "该程序用于计算两个矩阵的乘积,其中m,n为矩阵A的行和列,n,r为矩阵B的行和列" << endl;
    cout << "m=";
    cin >> m;
    cout << "n=";
    cin >> n;
    cout << "r=";
    cin >> r;
    cout << "现在请输入A的值" << endl;
    input(A, m, n, 'A');
    cout << "矩阵A=" << endl;
    print(A, m, n);
    cout << "现在请输入B的值" << endl;
    input(B, n, r, 'B');
    cout << "矩阵B=" << endl;
    print(B, n, r);
    matrix_mul(A, B, C, m, n, r);
    cout << "答案C=" << endl;
    print(C, m, r);
    del(A,m);
    del(B,n);
    del(C,m);
    system("pause");
    return 0;
}
自己写的一个
2011-10-15 23:57
快速回复:矩阵相乘问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037426 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved