首页 > 学院 > 开发设计 > 正文

lanqiao-矩阵乘法

2019-11-06 07:46:17
字体:
来源:转载
供稿:网友
问题描述  输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。输入格式  第一行,空格隔开的三个正整数m,s,n(均不超过200)。  接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。  接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。输出格式  m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。样例输入2 3 21 0 -11 1 -30 31 23 1样例输出-3 2-8 2提示矩阵C应该是m行n列,其中C(i,j)等于矩阵A第i行行向量与矩阵B第j列列向量的内积。例如样例中C(1,1)=(1,0,-1)*(0,1,3) = 1 * 0 +0*1+(-1)*3=-3

#include <stdio.h>#define SIZE 201struct RECT {	int r[SIZE];};int main() {	int m, s, n;	scanf("%d %d %d", &m, &s, &n);	struct RECT A[m];	struct RECT B[n];	int i, j;	for (i = 0; i < m; i++) {		for (j = 0; j < s; j++) {			scanf("%d", &A[i].r[j]);		}	}	for (i = 0; i < s; i++) {		for (j = 0; j < n; j++) {			scanf("%d", &B[j].r[i]);		}	}	int q;	for (j = 0; j < m; j++) {		for (i = 0; i < n; i++) {			int sum = 0;			for (q = 0; q < s; q++) {				sum += A[j].r[q] * B[i].r[q];			}			PRintf("%d ", sum);		}		printf("/n");	}		return 0;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表