首页 > 其他 > 详细

第八章 习题

时间:2016-08-24 01:08:50      阅读:104      评论:0      收藏:0      [点我收藏+]

  8.5矩阵运算,A是一个x行,y列矩阵,B是y行z列矩阵,把A和B相乘,结果是另外一个x行z列矩阵,每个位置的值由下公式决定,编写函数:

#include <stdio.h>

void matrix_mutiply(int *m1, int *m2, int *r, int x, int y, int z)
{
	//sum为求和值
	int i, j, k, sum;

	for(i = 0; i < x; i++){
		for(j = 0; j < z; j++){
			//对i行j列的矩阵求值
			for(sum = 0, k = 0; k < y; k++){
				//由于m1 m2 r均为一维数组,矩阵上的i 行 j位,对应的一维坐标为 i * 列数 + j
				sum += m1[ i * y + k ] * m2[ k * z + j ];
			}
			r[i * z + j] = sum;
		}
	}
}


int main()
{

	int m1[6] = { 2, -6,  3,  5,  1, -1 };
	int m2[8] = { 4, -2, -4, -5, -7, -3, 6, 7};

	int r[12] = {};

	matrix_mutiply(m1, m2, r, 3, 2, 4);

	int x, y;
	for(x = 0; x < 3; x++){
		for(y = 0; y < 4; y++){
			printf("%5d\t", r[x * 4 + y]);
		}
		printf("\n");
	}
    return 0;
}

  输出:

技术分享

 

第八章 习题

原文:http://www.cnblogs.com/yangxunwu1992/p/5801351.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!