编写一个程序用于执行矩阵的乘法。 m1是一个x行y列的矩阵,m2是y行z列的矩阵。 这两个矩阵应该相乘,结果存储在r中,它是x行z列的矩阵。

来源:互联网 发布:手机虚拟摄像头软件 编辑:程序博客网 时间:2024/05/17 22:11
/**************************************** *  File Name  : matrix_multiply.c *  Creat Data : 2015.1.21*  Author     : ZY *****************************************/ /*编写一个程序用于执行矩阵的乘法。m1是一个x行y列的矩阵,m2是y行z列的矩阵。这两个矩阵应该相乘,结果存储在r中,它是x行z列的矩阵。*/#include <stdio.h>void matrix_multiply(int *m1,int *m2,int *r,int x,int y,int z){int i,j,k;int p1,p2;for( i = 0;i < x; ++i ){for( k = 0;k < z;++k ){*r = 0;for( j = 0;j < y;++j ){p1 = *( m1 + i * y + j );p2 = *( m2 + j * z + k );*r += p1 * p2;}r++;}}}int main(){int i,j;int a[2][3]={1,2,3,4,5,6};int b[3][4]={1,0,1,2,0,1,2,1,0,0,1,1};        int c[2][4]={0};matrix_multiply(&a[0][0],&b[0][0],&c[0][0],2,3,4);for( i = 0;i < 2; ++i ){for( j = 0;j < 4;++j ){printf("%5d ",c[i][j]);}printf("\n");}return 0;}

0 0
原创粉丝点击