主题:各位高手帮帮忙啊!!!稀疏矩阵的的存储
qimiao
[专家分:0] 发布于 2005-10-20 21:15:00
稀疏矩阵的存储
1 用三元数组的数组形式
2 用带行指针的链表
回复列表 (共2个回复)
沙发
wmm [专家分:0] 发布于 2005-11-09 15:28:00
#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;}
}
}
板凳
jiaxi [专家分:0] 发布于 2006-06-26 18:09:00
哈哈哈,正好课程设计用到了!程序编得太好了,强!!!
我来回复