标签:
//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;
}
标签:
原文地址:http://blog.csdn.net/bao_libra/article/details/45949637