题解 | #矩阵乘法#

矩阵乘法

http://www.nowcoder.com/practice/ebe941260f8c4210aa8c17e99cbc663b

可爱的中等题该有的样子!
A m*n
B n*q
C m*q,元素为n个相乘再相加
             for(int t=0;t<n;t++)
             c[i][j]+=a[i][t]*b[t][j];

/*HJ69 矩阵乘法
输入:第一行包含一个正整数x,代表第一个矩阵的行数
第二行包含一个正整数y,代表第一个矩阵的列数和第二个矩阵的行数
第三行包含一个正整数z,代表第二个矩阵的列数
之后x行,每行y个整数,代表第一个矩阵的值
之后y行,每行z个整数,代表第二个矩阵的值
输出:对于每组输入数据,输出x行,每行z个整数,代表两个矩阵相乘的结果
*/
#include <iostream>
using namespace std;
int main()
{
    int m,n,q;//1行 1列(2行) 2列
    int a[100][100],b[100][100],c[100][100]={0};
    cin>>m>>n>>q;
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
        {
            cin>>a[i][j];
        }
    for(int i=0;i<n;i++)
        for(int j=0;j<q;j++)
        {
            cin>>b[i][j];
        }
//    for(int i=0;i<m;i++)
//    {
//        for(int j=0;j<n;j++)
//        {
//            cout<<a[i][j]<<" ";
//        }
//        cout<<endl;
//    }
//        
//    for(int i=0;i<m;i++)
//    {
//        for(int j=0;j<q;j++)
//        {
//           cout<<b[i][j]<<" ";
//        }
//        cout<<endl;
//    }
//        
     for(int i=0;i<m;i++)
     {
     	for(int j=0;j<q;j++)
         { 
		 	for(int t=0;t<n;t++)
			 c[i][j]+=a[i][t]*b[t][j];   
         }
	 }
	for(int i=0;i<m;i++)
     {
     	for(int j=0;j<q;j++)
         { 
		 	cout<<c[i][j]<<" "; 
         }
         cout<<endl;
	 }
         
}


全部评论

相关推荐

nbdy:字太多了,写简历不是写自传,亮点难点技能点列出来就行,要简明扼要
点赞 评论 收藏
分享
给🐭🐭个面试机会吧:嘿,mvbatis
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务