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

4.1矩阵运算的设计与实现

时间:2015-05-24 10:10:30      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

//4.1矩阵运算的设计与实现

#include <stdio.h>
#include <string.h>

#define M 4
/****----------------------------------------------****/
//函数名:MatrixAdd(int m1[M][M], int m2[M][M], int &result[M][M])
//参数:   (传入)int m1[M][M], m2[M][M]矩阵m1和m2
//        (传入)int result[M][M],矩阵加计算结果
//作用:   两矩阵相加
//备注:   计算公式为result[i][j] = m1[i][j] + m2[i][j]
/****----------------------------------------------****/
void MatrixAdd(int m1[M][M], int m2[M][M], int result[M][M])
{
    int i, j;
    for(i = 0; i < 4; i++) {
        for(j = 0; j < 4; j++) {
            result[i][j] = m1[i][j] + m2[i][j];
        }
    }
}

/****---------------------------------------------****/
//函数名: MatrixTrams(int m1[M][M], int &result[M][M])
//参数:   (传入)int m1[M][M],矩阵m1
//作用:   将矩阵转置
/****---------------------------------------------****/
void MatrixTrams(int m1[M][M], int result[M][M])
{
    int i, j;
    for(i = 0; i < 4; i++) {
        for(j = 0; j < 4; j++) {
            result[i][j] = m1[j][i];
        }
    }
}

/****--------------------------------------------****/
//函数名: MatrixPlus(int m1[M][M], int m2[M][M], int result[M][M])
//参数:   (传入)int m1[M][M], int m2[M][M] 矩阵m1和m2
//        (传入)int result[M][M],矩阵乘计算结果
//作用:   两矩阵相乘
//备注:   计算公式为result[i][j] = m1[i][k]*m2[k][j]
/****--------------------------------------------****/
void MatrixPlus(int m1[M][M], int m2[M][M], int result[M][M])
{
    int i, j, k;
    for(i = 0; i < 4; i++) {
        for(j = 0; j < 4; j++) {
            result[i][j] = 0;
            for(k = 0; k < 4; k++) {
                result[i][j] += m1[i][k]*m2[k][j];
            }
        }
    }
}

/****--------------------------------------------*****/
//函数名: Display(int result[M][M])
//参数:   (传入)int result[M][M],矩阵result
//作用:   输出矩阵值
//备注:   按行输出
/****--------------------------------------------****/
void Display(int result[M][M])
{
    int i, j;
    printf("The operating result of Matrix:\n");
    for(i = 0; i < 4; i++) {
        for(j = 0; j < 4; j++) {
            printf("%d ", result[i][j]);
        }
        printf("\n");
    }
}

/***********************测试程序********************/

int main()
{
    int A[M][M];
    int B[M][M];
    int i, j;
    printf("Input the first Matrix:\n");
    for(i = 0; i < 4; i++) {
        for(j = 0; j < 4; j++) {
            scanf("%d", &A[i][j]);
        }
    }
    printf("Input the second Matrix:\n");
    for(i = 0; i < 4; i++) {
        for(j = 0; j < 4; j++) {
            scanf("%d", &B[i][j]);
        }
    }

    int result[M][M];
    MatrixAdd(A, B, result);
    Display(result);
    memset(result, 0, sizeof(result));
    MatrixPlus(A, B, result);
    Display(result);
    return 0;
}


 

4.1矩阵运算的设计与实现

标签:

原文地址:http://blog.csdn.net/bao_libra/article/details/45949637

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!