婷猪

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  14 随笔 :: 0 文章 :: 0 评论 :: 1477 阅读
复制代码
 1 #include <stdio.h>
 2 int main(void)
 3 {   
 4     int n,m,l;
 5     scanf("%d%d%d",&n,&m,&l);
 6     long int a[n][m],b[m][l];
 7     long int c[n][l];
 8     int i,j;
 9     for(i=0;i<n;i++)
10     for(j=0;j<m;j++)
11     scanf("%ld",&a[i][j]);//输入
12     for(i=0;i<m;i++)
13     for(j=0;j<l;j++)
14     scanf("%ld",&b[i][j]);//输入
15     for(i=0;i<n;i++)
16     for(j=0;j<l;j++)
17     c[i][j]=0;//c[][]初始化,方便后续进行c[][]+=
18     for(i=0;i<n;i++)
19     for(j=0;j<l;j++)
20     for(int t=0;t<m;t++)//引入t进行对应列与对应行的乘积求和
21     c[i][j]+=a[i][t]*b[t][j];
22     for(i=0;i<n;i++)
23     {
24         for(j=0;j<l;j++)
25         printf("%ld ",c[i][j]);
26         printf("\n");
27     }
28     return 0;
29 }
复制代码

题面

编写一个程序,读取一个n×m矩阵A和一个m×l矩阵B,然后打印它们的乘积,一个n×l矩阵C。

输入

在第一行中,三个整数n、m和l由空格字符分隔。

在接下来的几行中,给出了n×m矩阵A和m×l矩阵B。

输出

打印n×l矩阵C的元素。相邻元素之间用一个空格字符分隔。

数据范围

  • 1 ≤ n,m,l ≤ 100
  • 0 ≤ 矩阵A、B中的元素 ≤ 10000
输入样例

3 2 3 1 2 0 3 4 5 1 2 1 0 3 2

输出样例

1 8 5 0 9 6 4 23 14

 

 

矩阵乘法:要求第一个矩阵(a[n][m])列数与第二个矩阵(b[m][l])行数相同

结果矩阵(c[n][l]):将矩阵Ⅰ的行中每一个数分别与矩阵Ⅱ的列中每一个数相乘并求和

如:c[3][5]=a[3][0]*b[0][3]+a[3][1]*b[1][3]+……

posted on   婷猪  阅读(508)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示