码迷,mamicode.com
首页 > 其他好文 > 详细

第八章 习题

时间:2016-08-24 01:11:49      阅读:120      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!