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

📄 xishujuzheng.cpp

📁 稀疏矩阵程序源代码
💻 CPP
字号:
#include<iostream.h>
#include<stdlib.h>
#include<iomanip.h>
#define M  10
#define N  10

float a[M][N];
float b[M][N];
float c[M][N];

void add()
{
	
    for(int i0=1;i0<=M;i0++)
	{
		for(int j0=1;j0<=N;j0++)
		{
			b[M][N]=0;
			c[M][N]=0;
			a[M][N]=0;
			
		}
	}

	int m1,n1;
	int m,n;
	float z;
	cout<<"请输入矩阵 1 的行列数:";
	cin>>m1>>n1;
	int kk=1;
	do{
		cout<<"请输入矩阵第"<<kk++<<"个非 0 元素(行、列、值):";		
		cin>>m>>n>>z;
		a[m][n]=z;
	}while(m!=0 || n!=0 || z!=0);


    cout<<"你输入矩阵 1 是:\n";
	for(int k=1;k<=m1;k++)
	{
		for(int h=1;h<=n1;h++)
		{	
			cout<<setw(3)<<setiosflags(ios::left)<<a[k][h];
		}
		cout<<"\n";
	}

	
	int m2,n2;
	int m21,n21;
	float z2;
	cout<<"请输入矩阵 2 的行列数:";
	cin>>m2>>n2;
	int kkk=1;
	do{	
		cout<<"请输入矩阵第"<<kkk++<<"个非 0 元素(行、列、值):";	
		cin>>m21>>n21>>z2;
		b[m21][n21]=z2;
	}while(m21!=0 || n21!=0 || z2!=0);

    cout<<"你输入矩阵 2 是:\n";
	for(int k2=1;k2<=m2;k2++)
	{
		for(int h2=1;h2<=n2;h2++)
		{	
			cout<<setw(3)<<setiosflags(ios::left)<<b[k2][h2];
		}
		cout<<"\n";
	}
	
	for(int k3=1;k3<=m2;k3++)
	{
		for(int h3=1;h3<=n2;h3++)
		{	
			c[k3][h3]=a[k3][h3]+b[k3][h3];			
		}
	}

	cout<<"矩阵相加的结果是:\n";
	for(int k4=1;k4<=m2;k4++)
	{
		for(int h4=1;h4<=n2;h4++)
		{	
			cout<<setw(3)<<setiosflags(ios::left)<<c[k4][h4];
		}
		cout<<"\n";
	}
}



void del()
{
	
    for(int i0=1;i0<=M;i0++)
	{
		for(int j0=1;j0<=N;j0++)
		{
			b[M][N]=0;
			c[M][N]=0;
			a[M][N]=0;
			
		}
	}

	int m1,n1;
	int m,n;
	float z;
	cout<<"请输入矩阵 1 的行列数:";
	cin>>m1>>n1;
	int kk=1;
	do{
		cout<<"请输入矩阵第"<<kk++<<"个非 0 元素(行、列、值):";		
		cin>>m>>n>>z;
		a[m][n]=z;
	}while(m!=0 || n!=0 || z!=0);


    cout<<"你输入矩阵 1 是:\n";
	for(int k=1;k<=m1;k++)
	{
		for(int h=1;h<=n1;h++)
		{	
			cout<<setw(3)<<setiosflags(ios::left)<<a[k][h];
		}
		cout<<"\n";
	}

	
	int m2,n2;
	int m21,n21;
	float z2;
	cout<<"请输入矩阵 2 的行列数:";
	cin>>m2>>n2;
	int kkk=1;
	do{	
		cout<<"请输入矩阵第"<<kkk++<<"个非 0 元素(行、列、值):";	
		cin>>m21>>n21>>z2;
		b[m21][n21]=z2;
	}while(m21!=0 || n21!=0 || z2!=0);

    cout<<"你输入矩阵 2 是:\n";
	for(int k2=1;k2<=m2;k2++)
	{
		for(int h2=1;h2<=n2;h2++)
		{	
			cout<<setw(3)<<setiosflags(ios::left)<<b[k2][h2];
		}
		cout<<"\n";
	}
	
	for(int k3=1;k3<=m2;k3++)
	{
		for(int h3=1;h3<=n2;h3++)
		{	
			c[k3][h3]=a[k3][h3]-b[k3][h3];			
		}
	}

	cout<<"矩阵相减的结果是:\n";
	for(int k4=1;k4<=m2;k4++)
	{
		for(int h4=1;h4<=n2;h4++)
		{	
			cout<<setw(3)<<setiosflags(ios::left)<<c[k4][h4];
		}
		cout<<"\n";
	}
}



void chengfa()
{
	
    for(int i0=1;i0<=M;i0++)
	{
		for(int j0=1;j0<=N;j0++)
		{
			b[M][N]=0;
			c[M][N]=0;
			a[M][N]=0;
			
		}
	}

	int m1,n1;
	int m,n;
	float z;
	cout<<"请输入矩阵 1 的行列数:";
	cin>>m1>>n1;
	int kk=1;
	do{
		cout<<"请输入矩阵第"<<kk++<<"个非 0 元素(行、列、值):";		
		cin>>m>>n>>z;
		a[m][n]=z;
	}while(m!=0 || n!=0 || z!=0);


    cout<<"你输入矩阵 1 是:\n";
	for(int k=1;k<=m1;k++)
	{
		for(int h=1;h<=n1;h++)
		{	
			cout<<setw(3)<<setiosflags(ios::left)<<a[k][h];
		}
		cout<<"\n";
	}

	
	int m2,n2;
	int m21,n21;
	float z2;
	cout<<"请输入矩阵 2 的行列数:";
	cin>>m2>>n2;
	int kkk=1;
	do{	
		cout<<"请输入矩阵第"<<kkk++<<"个非 0 元素(行、列、值):";	
		cin>>m21>>n21>>z2;
		b[m21][n21]=z2;
	}while(m21!=0 || n21!=0 || z2!=0);

    cout<<"你输入矩阵 2 是:\n";
	for(int k2=1;k2<=m2;k2++)
	{
		for(int h2=1;h2<=n2;h2++)
		{	
			cout<<setw(3)<<setiosflags(ios::left)<<b[k2][h2];
		}
		cout<<"\n";
	}
	
	for(int k3=1;k3<=m1;k3++)
	{
		for(int h3=1;h3<=n1;h3++)
		{	
			c[k3][h3]=0;
			for(int l=1;l<=n2;l++)
				c[k3][h3]+=a[k3][l]*b[l][h3];
		}
	}

	
	cout<<"矩阵相乘的结果是:\n";
	for(int k4=1;k4<=m1;k4++)
	{
		for(int h4=1;h4<=n1;h4++)
		{	
			cout<<setw(3)<<setiosflags(ios::left)<<c[k4][h4];
		}
		cout<<"\n";
	}
}


void shuchujiemian()      //打印界面函数
{

	cout<<"\n      *   欢迎使用稀疏矩阵运算器程序   *            \n";
	cout<<"==============================================\n";
	cout<<"=  选 a-矩阵相加        选 s-矩阵相减      =\n";
    cout<<"=               选 d-矩阵相乘               =\n";
	cout<<"=               选Q、q-退出程序             =\n";
	cout<<"=--------------------------------------------=\n";
	cout<<"=      注:三元组输入 0 0 0 结束输入!        =\n";
	cout<<"==============================================\n";
	cout<<"请选择: ";
}



void main()
{	
	shuchujiemian();
	 char cmd;	
	do{	  
 	  cin>>cmd;	
	  switch(cmd)
	  {
	  case 'a':
		  add();
		  break;
	  case 's':
		  del();
		  break;
	  case 'd':
		  chengfa();
		  break;
	  }
	   shuchujiemian();
	}while(cmd!='q'&&cmd!='Q');

	cout<<"\n谢谢你的使用!!!\n";
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -