📄 xishujuzheng.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 + -