// MatrixMinus.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <IOSTREAM>
#include <CSTDIO>
#include <CSTDLIB>
using namespace std;
void MatrixMinus(double A[], double B[], int m, int n, double C[])
{
int i;
for (i = 0; i < m * n; i++)
{
C[i] = A[i] - B[i];
}
}
int main(int argc, char* argv[])
{
double A[3][3] = {
{1.0, 2.0, 3.0},
{4.0, 5.0, 6.0},
{7.0, 8.0, 9.0}
};
double B[3][3] = {
{2.0, -2.0, 1.0},
{1.0, 3.0, 9.0},
{17.0, -3.0, 7.0}
};
int m = 3, n = 3, i, j;
double C1[3*3] = {0};
printf("矩阵A和B相加的结果为: \n");
// 二维不能传给一维 cannot convert parameter 1 from 'double [3][3]' to 'double []'
double A1[3*3] = {0};
for (i = 0; i < n*m; i++)
{
A1[i] = A[i/n][i%n];
}
// 二维转换一维
double C[3][3] = {0};
double B1[3*3] = {0};
for (i = 0; i < n*m; i++)
{
B1[i] = B[i/n][i%n];
}
MatrixMinus(A1, B1, m, n, C1);
// 一维转换二维
for (i = 0; i < n*m; i++)
{
C[i/n][i%n] = C1[i];
}
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
printf("%10.6f", C[i][j]);
}
printf("\n");
}
/*
for (i = 0; i < m*n; i++)
{
printf("%10.6f", C[i]);
}
*/
return 0;
}
/*
矩阵A和B相加的结果为:
-1.000000 4.000000 2.000000
3.000000 2.000000 -3.000000
-10.000000 11.000000 2.000000
*/
矩阵减法
最新推荐文章于 2024-02-24 21:18:47 发布