回 帖 发 新 帖 刷新版面

主题:各位高手帮帮忙啊!!!稀疏矩阵的的存储

稀疏矩阵的存储
1 用三元数组的数组形式
2 用带行指针的链表

回复列表 (共2个回复)

沙发

#include<stdio.h>
#include"iostream.h"
#define  N  5
int sum(int a[N][N],int b[N][N],int m,int n)
{
  
  int c,i,j;
  for(i=0;i<m;i++)
  {
   for(j=0;j<n;j++)
   {
    c=a[i][j]+b[i][j];
                printf("%3d",c);
   }
   printf("\n");
  }
  return 0;
}
int num(int a[N][N],int b[N][N],int m,int n)
{

  int i,j,x,t=0;
  for(i=0;i<m;i++)
  {
   for(x=0;x<n;x++)
    
   {   t=0;
    for(j=0;j<n;j++)
   {
    
     t+=a[i][j]*b[j][x];
    
   }
    printf("%3d",t);
   }
   printf("\n");
  }

return 0;
}
int sub(int a[N][N],int b[N][N],int m,int n)
{
  int c[N][N],i,j;
  for(i=0;i<m;i++)
  { for(j=0;j<n;j++)
   {
    c[i][j]=a[i][j]-b[i][j];
                printf("%3d",c[i][j]);
   }
            printf("\n");
  }
  return 0;
}

main()
{
int  a[N][N],b[N][N];
int   i,j,t,m,n,o;
cout<<"请输入距阵的行数和列数:"<<endl;
cin>>m>>n;
printf("请输入距阵1的内容:\n");

for(i=0;i<m;i++)
  for(j=0;j<n;j++)
              cin>>a[i][j];
    printf("请输入距阵2的内容:\n");

for(i=0;i<m;i++)
  for(j=0;j<n;j++)
   cin>>b[i][j];
cout<<"请输入要进行的运算(1、加法,2、减法、3、乘法):";
cin>>o;
switch(o)
{
case 1:
  {
   cout<<"计算结果为:"<<endl;
   sum(a,b,m,n);break;}
    case 2:
        {   cout<<"计算结果为:"<<endl;
   sub(a,b,m,n);break;}
    case 3:
        {   cout<<"计算结果为:"<<endl;
   num(a,b,m,n);break;}
}
     
}

板凳

哈哈哈,正好课程设计用到了!程序编得太好了,强!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册