标题:求大神告诉我这里面的错误怎么修改,感激涕零啊!!!!
取消只看楼主
码奴
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-12-16
结帖率:0
已结贴  问题点数:20 回复次数:0 
求大神告诉我这里面的错误怎么修改,感激涕零啊!!!!
这是数据结构试验中的,基于三元组存储的矩阵转置算法,这里面有5处错误,首先声明这个是在vc++6.0中写的
#include <iostream.h>
#define N 4
#define MaxSize 100

typedef struct tupnode
{int r;
int c;
int d;
}TupNode;

typedef struct matrix
{TupNode data[MaxSize];
int rows;
int cols;
int nums;
}TSMatrix;

void CreatMat(TSMatrix t,inta[N][N])
{int i,j;
t.rows=N;
t.cols=N;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(a[i][j]!=0)
{t.data[t.nums].r=i;
t.data[t.nums].c=j;
t.data[t.nums].d=a[i][j];
t.nums++;
}
}

void DispMat(TSMatrix t)
{int i;
if(t.nums<=0)
return;
cout<<t.rows<<''<<t.cols<<' '<<t.nums<<endl;
cout<<"-----------------------"<<endl;
for(i=0;i<t.nums;i++)
cout<<t.data[i].r<<''<<t.data[i].c<<' '<<t.data[i].d<<endl;
}

void TranMat(TSMatrixtsa,TSMatrix &tsc)
{int p,q,v;
tsc.rows=tsa.cols;
tsc.cols=tsa.rows;
tsc.nums=tsa.nums;
if(tsa.nums!=0)
{for(v=0;v<tsa.cols;v++)
for(p=0;p<tsa.nums;p++)
if(tsa.data[p].c==v)
{tsc.data[q].c=tsa.data[p].r;
tsc.data[q].r=tsa.data[p].c;
tsc.data[q].d=tsa.data[p].d;
p++;
}
}
}

void DispNN(TSMatrix t)
{int i,j,k,flag;
for(i=0;i<t.rows;i++)
{for(j=0;j<t.cols;j++)
{flag=0;
for(k=0;k<t.nums;k++)
if((i==t.data[k].r)&&(j==t.data[k].c))
{cout<<t.data[k].d<<' ';
flag=1;
break;
}
if(flag==0)
cout<<"0"<<' ';
}
cout<<endl;
}
}

void main()
{inta[N][N]={{1,0,3,0},{0,1,0,0},{0,0,1,0},{0,0,1,1}};
TSMatrix tsa,tsc;
CreatMat(tsa,a);
cout<<"a的三元组为:"<<endl;
DispMat(tsa);
cout<<"a转置后的三元组为:"<<endl;
TranMat(tsc,tsa);
DispMat(tsc);
cout<<"a转置后的结果矩阵为:"<<endl;
DispNN(tsc);}
搜索更多相关主题的帖子: include matrix 三元 
2013-12-16 16:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-425271-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.127261 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved