⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 074256_2.cpp

📁 一个用c语言写的一个矩阵加减乘的小程序。里面有具体的使用方法
💻 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 + -