1.静态方式一般是声明二维数组来储存,相对来说比较简单理解与操作,不足之处则是所占据的空间不能释放。如下两个矩阵相加
// test.cpp : 定义控制台应用程序的入口点。
//使用静态存储实现,优点:简单、易实现,缺点:不能释放内存、对电脑要求高,
//不能返回数
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
double A[4][4], B[4][4], C[4][4];
//对矩阵A、B进行初始化
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
//使用rand函数随机赋值,控制在一定范围内30-70;101-135
A[i][j]=30+rand()%(70-30+1);
B[i][j]=101+rand()%(135-101+1);
}
}
cout<<"A[4][4]="<<endl;
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
cout<<A[i][j]<<' ';
//B[i][j]=101+rand()%(135-101+1);
if(j==3)
cout<<endl;
}
}
cout<<"B[4][4]="<<endl;
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
cout<<B[i][j]<<' ';
if(j==3)
cout<<endl;
}
}
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
C[i][j]=A[i][j]+B[i][j];
}
}
cout<<"C[4][4]=A[4][4]+B[4][4]="<<endl;
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
cout<<C[i][j]<<' ';
if(j==3)
cout<<endl;
}
}
}
// test.cpp : 定义控制台应用程序的入口点。
//使用动态存储实现,优点:降低电脑配置要求、占存储可释放
#include "stdafx.h"
typedef struct
{
double **mat;
int m,n;
}matrix;
//动态申请内存
void initial(matrix &T, int m, int n)
{
int i;
T.mat = (double**)malloc(m*sizeof(double*));
for(i=0; i<m; i++)
{
T.mat[i] = (double*)malloc(n*sizeof(double));
}
T.m = m;
T.n = n;
}
//定义一个初始化矩阵函数
void initZero(matrix &T, int m, int n,int a, int b)
{
int i, j;
initial(T, m, n);
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
T.mat[i][j]=a+rand()%(b-a+1);
}
}
}
//定义一个释放内存函数
void destroy(matrix &T)
{
int i;
for(i=0; i<T.m; i++)
{
free(T.mat[i]);
}
free(T.mat);
}
int _tmain(int argc, _TCHAR* argv[])
{
matrix A, B, C;
initZero(A, 4, 4,30,70);
initZero(B, 4, 4,101,135);
initial(C, 4, 4);
cout<<"矩阵A="<<endl;
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
cout<<A.mat[i][j]<<' ';
if(j==3)
cout<<endl;
}
}
cout<<"矩阵B="<<endl;
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
cout<<B.mat[i][j]<<' ';
if(j==3)
cout<<endl;
}
}
cout<<"矩阵C=A+B"<<endl;
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
C.mat[i][j]=A.mat[i][j]+B.mat[i][j];
cout<<C.mat[i][j]<<' ';
if(j==3)
cout<<endl;
}
}
//释放之前申请的内存
destroy(A);
destroy(B);
destroy(C);
}
以上。