4.1矩阵运算的设计与实现

来源:互联网 发布:xp绑定mac地址 编辑:程序博客网 时间:2024/06/09 14:12
//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;}


 

1 0
原创粉丝点击