51NOD 1137 矩阵乘法
Posted ekalos-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51NOD 1137 矩阵乘法相关的知识,希望对你有一定的参考价值。
给出2个N * N的矩阵M1和M2,输出2个矩阵相乘后的结果。
Input
第1行:1个数N,表示矩阵的大小(2 <= N <= 100) 第2 - N + 1行,每行N个数,对应M1的1行(0 <= M1[i] <= 1000) 第N + 2 - 2N + 1行,每行N个数,对应M2的1行(0 <= M2[i] <= 1000)
Output
输出共N行,每行N个数,对应M1 * M2的结果的一行。
Input示例
2 1 0 0 1 0 1 1 0
Output示例
0 1 1 0
解:感觉这么写不太好,应该b也开成二维数组,c为变量,这样空间消耗一样,但更容易些。
1 #include <stdio.h> 2 3 #define CLR(x) memset(x,0,sizeof(x)) 4 5 int a[100][100], b, c[100][100]; 6 7 int main() 8 { 9 int n; 10 while (scanf_s("%d", &n) != EOF) 11 { 12 CLR(c); 13 for (int i = 0; i < n; i++) 14 for (int j = 0; j < n; j++) scanf_s("%d", &a[i][j]); 15 16 for (int i = 0; i < n; i++) 17 for (int j = 0; j < n; j++) 18 { 19 scanf_s("%d", &b); 20 for(int l = 0; l < n; l++) c[l][j] += a[l][i] * b; 21 } 22 23 for (int i = 0; i < n; i++) 24 { 25 for (int j = 0; j < n - 1; j++) printf("%d ", c[i][j]); 26 printf("%d ", c[i][n - 1]); 27 } 28 } 29 }
以上是关于51NOD 1137 矩阵乘法的主要内容,如果未能解决你的问题,请参考以下文章