📄 w对角矩阵.cpp
字号:
#include "iostream.h"
//n阶w对角矩阵压缩存储到一维数组中(行主序)
void twotone(int b[],int n)
{
int k;
cout<<"请以行序为主输入对角矩阵非零元素:"<<endl;
for(k=0;k<3*n-2;k++)
cin>>b[k];
}
//输出n阶w对角矩阵
void matrixprint(int b[],int n,int w)
{
int i,j,k,m;
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
{ m=i-j;
if(m<0) m=-m;
if(m<(w-1))
{k=(w-1)*i+j-w;
cout<<b[k]<<" ";}
else cout<<" ";
}
cout<<endl;
}
}
//n阶w对角矩阵加法运算
void matrixadd(int a[],int b[],int c[],int n,int w)
{
int i,k;
k=3*n-2;
for(i=0;i<k;i++) c[i]=a[i]+b[i];
}
//n阶w对角矩阵减法运算
void matrixsub(int a[],int b[],int c[],int n,int w)
{
int i,k;
k=3*n-2;
for(i=0;i<k;i++) c[i]=a[i]-b[i];
}
//n阶w对角矩阵倍乘运算
void matrixmul(int a[],int k,int c[],int n,int w)
{
int i,m;
m=3*n-2;
for(i=0;i<m;i++) c[i]=k*a[i];
}
void main()
{
int b[10],c[10],a[10];
twotone(b,4);
twotone(a,4);
matrixprint(a,4,3);
matrixprint(b,4,3);
matrixadd(a,b,c,4,3);
matrixprint(c,4,3);
matrixsub(a,b,c,4,3);
matrixprint(c,4,3);
matrixmul(b,6,c,4,3);
matrixprint(c,4,3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -