• 大小: 7KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: C/C++
  • 标签: vc++  c  矩阵  

资源简介

这是关于几种特殊矩阵的压缩存储,包括上、下三角矩阵、对称矩阵、正交矩阵

资源截图

代码片段和文件信息

#include
#include
#include
using namespace std;
typedef int elemtype;//定义矩阵的数据类型
void  UptriInput(elemtype *aint n)//上三角矩阵的存储
{
int ijk=0;
elemtype e;


    if(n<=0) 
cout<<“输入错误!“< else
{
cout<<“第i行  “<<“第j列“<    for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
{  cout<<“  “<    cin>>e;
   cout<           a[k]=e;
   k++;
}
}

}
void DotriInput(elemtype *aint n)//下三角的压缩存储
{
int ijk=0;
elemtype e;


    if(n<=0) 
cout<<“输入错误!“< else
{
cout<<“第i列  “<<“第j行“<    for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
{  cout<<“  “<    cin>>e;
   cout<           a[k]=e;
   k++;
}
}
}



void  SyeInput(elemtype *aint n)//对称矩阵的输入
{
int ijk=0;
elemtype e;


    if(n<=0) 
cout<<“输入错误!“< else
{
cout<<“第i行  “<<“第j列“<    for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
{  cout<<“  “<    cin>>e;
   cout<           a[k]=e;
   k++;
}
}

}
void SyePrint(elemtype *a int nint m)//对称矩阵(上下三角)的输出
{
  int ijk;
  switch(m)
  { case 1: 
      cout<<“该对称矩阵为:“<          for(i=1;i<=n;i++)
  {
      for(j=1;j<=n;j++)
  {
      if(i>=j) k=(i-1)*i/2+j-1;
  else k=(j-1)*j/2+i-1;
  cout<   }
      cout<   }break;
  
  case 2:
      cout<<“该上三角矩阵为:“<   for(i=1;i<=n;i++)
  {
      for(j=1;j<=n;j++)
  {
      if(i>j) 
  cout<<“0“<<“  “;
  else 
  {   k=(i-1)*i/2+j-1;
  cout<   }
  }
      cout<   }break;
  case 3:
      cout<<“该下三角矩阵为:“<   for(i=1;i<=n;i++)
  {
      for(j=1;j<=n;j++)
  {
      if(i>=j) 
  { 
  k=(j-1)*j/2+i-1;
  cout<   }
  else 
  cout<<“0“<<“  “;
  }
  cout<   break;
default: cout<<“输入错误!“;
  
}
}
void SyeSearch(elemtype *aint nint m)//对称矩阵(上下三角)的查找
{
  int ijk;
  cout<<“请输入要查询的行数为:“;
  cin>>i;
  cout<<“列数为:“;
  cin>>j;
  switch(m)
  {
  case 1:
     if(i<=n&&j<=n)
 {
     if(i>=j)  k=(i-1)*i/2+j-1;
         else     k=(j-1)*j/2+i-1;
  cout<      cout<<“地址是:“<  }
          else
     cout<<“找不到你所要的数据!“<  case 2:
      if(i<=n&&j<=n)
  {
      if(i>j) 
  cout<<“0“<   else 
  {   k=(i-1)*i/2+j-1;
  cout<   cout<<“地址为:“<   }
  }
  else 
  cout<<“找不到你所要的数据!“<  case 3:
      if(i<=n&&j<=n)
  {
  if(i>=j) 
  { 
  k=(j-1)*j/2+i-1;
  cout<   cout<<“地址为“<   }
  else 
  cout<<“0“<   }
  else
  cout<<“你输入错误!“< default: cout<<“输入错误!“;
  }
}
void SyeChang(elemtype *aint nint m)//对称矩阵(上下三角)的更换
{
int ijk;
elemtype e;

cout<<“请输入你要改变的数据的行数:“;
cin>>i;
    cout<<“列数为:“;

评论

共有 条评论