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

📄 下三角矩阵.cpp

📁 矩阵的一些算法应用
💻 CPP
字号:
#include "iostream.h"
//下三角矩阵压缩存储在一维数组中

//输出下三角矩阵
void mprint(int b[],int n)
{int i,j,k;
for(i=0;i<n;i++)
{
	for(j=0;j<n;j++)
	if(i>=j)
		{		k=i*(i+1)/2+j;
	     cout<<b[k]<<"  ";}
	
	  else
	  { k=n*(n+1)/2;
		  if(b[k]!=0) cout<<b[k]<<"  ";
	      else cout<<"  ";
	  }
	
	  cout<<endl; 
}
cout<<endl; 
}
//下三角矩阵加法运算
void shangmatrixadd(int a[],int b[],int c[],int n)
{
int k=n*(n+1)/2;
for(int i=0;i<=k;i++) c[i]=a[i]+b[i];

}

//下三角矩阵减法运算
void shangmatrixsub(int a[],int b[],int c[],int n)
{
int k=n*(n+1)/2;
for(int i=0;i<=k;i++) c[i]=a[i]-b[i];

}
//下三角矩阵倍乘运算
void shangmatrixb(int a[],int p,int c[],int n)
{
int k=n*(n+1)/2;
for(int i=0;i<=k;i++) c[i]=p*a[i];

}

//下三角矩阵乘法运算
void shangmatrixmul(int a[],int b[],int c[],int n)
{
int m=n*(n+1)/2;
int i,j,k,v,p,q;
for(i=0;i<n;i++)
for(j=0;j<n;j++) 
{if(i>=j) v=i*(i+1)/2+j;
 else
	v=n*(n+1)/2;
 c[v]=0;
   for(k=0;k<n;k++)
   {if(i>=k) p=i*(i+1)/2+k;
    else p=n*(n+1)/2;
	if(k>=j)q=k*(k+1)/2+j;
    else q=n*(n+1)/2;
	   c[v]=c[v]+a[p]*b[q];
   }
}
}

void main()
{
	int a[]={1,2,4,5,6,7,0};
	int b[]={9,8,5,7,4,3,0};
	int c[20];
	mprint(a,3);
mprint(b,3);
/*	shangmatrixadd(a,b,c,3);
mprint(c,3);
shangmatrixsub(a,b,c,3);
mprint(c,3);
shangmatrixb(a,4,c,3);
mprint(c,3);*/
shangmatrixmul(a,b,c,3);
mprint(c,3);
}

⌨️ 快捷键说明

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