📄 074256_2.cpp
字号:
//074256_2.cpp : To calculate two Matrix by addition,substraction and multiplication
#include"074256_1.h"
//fuction : add -----------------------------------------------------------------------------
//To add two Matrix if possible
void add(int **p_mat1,int row1,int col1,int **p_mat2,int row2,int col2)
{
int **p_ans;
int i=0;
int j=0;
int row=row1;
int col=col1;
if((row1==row2)&&(col1==col2))
{
p_ans=(int **)malloc(row*sizeof(int *)); //allocate memory for Matrix
if(p_ans==NULL)
{
printf("\t\tNo enough memory!\n");
exit(1);
}
for(i=0;i<row;i++)
{
p_ans[i]=(int *)malloc(col*sizeof(int));
if(p_ans[i]==NULL)
{
printf("\t\tNo enough memory!\n");
exit(1);
}
}
printf("\tMatrix1 + Matrix2 =\n\n");
for(i=0;i<row;i++) //add Matrix
for(j=0;j<col;j++)
p_ans[i][j]=p_mat1[i][j]+p_mat2[i][j];
print_matrix(p_ans,row,col);
free_matrix(p_ans,row);
}
else
printf("\tThese two Matrixes cannot add\n\n");
}
//fuction : substract---------------------------------------------------------------------------
//To substract two Matrix if possible
void substract(int **p_mat1,int row1,int col1,int **p_mat2,int row2,int col2)
{
int **p_ans;
int i=0;
int j=0;
int row=row1;
int col=col1;
if((row1==row2)&&(col1==col2))
{
p_ans=(int **)malloc(row*sizeof(int *)); //allocate memory for Matrix
if(p_ans==NULL)
{
printf("\t\tNo enough memory!\n");
exit(1);
}
for(i=0;i<row;i++)
{
p_ans[i]=(int *)malloc(col*sizeof(int));
if(p_ans[i]==NULL)
{
printf("\t\tNo enough memory!\n");
exit(1);
}
}
printf("\tMatrix1 - Matrix2 =\n\n");
for(i=0;i<row;i++) //substract Matrix
for(j=0;j<col;j++)
p_ans[i][j]=p_mat1[i][j]-p_mat2[i][j];
print_matrix(p_ans,row,col);
free_matrix(p_ans,row);
}
else
printf("\tThese two Matrixes cannot substract\n\n");
}
//fuction : multiply --------------------------------------------------------------------------
//To multiply two Matrix if possible
void multiply(int **p_mat1,int row1,int col1,int **p_mat2,int row2,int col2)
{
int **p_ans;
int i=0;
int j=0;
int k=0;
int row=row1;
int col=col2;
if(col1==row2)
{
p_ans=(int **)malloc(row*sizeof(int *)); //allocate memory for Matrix
if(p_ans==NULL)
{
printf("\t\tNo enough memory!\n");
exit(1);
}
for(i=0;i<row;i++)
{
p_ans[i]=(int *)malloc(col*sizeof(int));
if(p_ans[i]==NULL)
{
printf("\t\tNo enough memory!\n");
exit(1);
}
}
printf("\tMatrix1 * Matrix2 =\n\n");
for(i=0;i<row;i++) //multiply Matrix
for(j=0;j<col;j++)
{
p_ans[i][j]=0;
for(k=0;k<row2;k++)
p_ans[i][j]+=p_mat1[i][k]*p_mat2[k][j];
}
print_matrix(p_ans,row,col);
free_matrix(p_ans,row);
}
else
printf("\tThese two Matrixes cannot multiply\n\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -