qq_26673045 2015-06-16 15:26 采纳率: 0%
浏览 1643
已结题

大二狗求大神解决数据结构里压缩矩阵程序的问题,悬赏5c币!

#include
using namespace std;
#define N 10
typedef struct{
int i,j;
int e;
}tsMatrix;
typedef struct{
tsMatrix data[N];/*最大长度为N */
int mu,nu,tu;
}TSMatrix;

int FastTransposeSMatrix(TSMatrix M,TSMatrix T) // 快速转置
{int col,p,q,t;

int num[N],cpot[N];
T->mu=M.nu;
T->nu=M.mu;
T->tu=M.tu;
if(T->tu)
{
for(col=1;col<=M.nu;++col)
num[col]=0;
for(t=1;t<=M.tu;++t)
++num[M.data[t].j];
cpot[1]=1;
for(col=2;col<=M.nu;++col)
cpot[col]=cpot[col-1]+num[col-1];
for(p=1;p<=M.tu;++p)
{
col=M.data[p].j;
q=cpot[col];
T->data[q].i=M.data[p].j;
T->data[q].j=M.data[p].i;
T->data[q].e=M.data[p].e;
++cpot[col];
}
}
return 0; /
补充函数*/
}
void printM(TSMatrix *M)
{
int p,q;int t=1;
for(p=1;p<=M->mu;p++)
{
for(q=1;q<=M->nu;q++)
{
if(M->data[t].i==p&&M->data[t].j==q)
{
cout<data[t].e<<" ";
t++;
}
else
cout<<"0 ";
}
cout<<'\n';
}

}
int main()
{
TSMatrix A,T;int k;
cout<<"请输入矩阵的大小:"< cout cin>>A.mu;
cout<<"它的列:";
cin>>A.nu;
cout<<"请输入不超过10且不为0的长度:";
cin>>A.tu;
for(k=1;k<=A.tu;k++)
{cout<<"请输入第"< cout cin>>A.data[k].i;
cout<<"它所在的列位置:";
cin>>A.data[k].j;
cout<<"它的值:";
cin>>A.data[k].e;
}
cout<<"原矩阵:"<<endl;
printM(&A);
cout<<"快速转置为:"<<endl;
FastTransposeSMatrix(A,&T);
cout<<"转置后的矩阵"<<endl;
printM(&T);

}
图片说明
ps:上面是本人的运行结果,运行时创建一个5行5列的矩阵,在截图中没有显示出来,得到的结果是错误的!!!!求大神指点,

  • 写回答

3条回答 默认 最新

  • Mr.Stone^_^ 2015-06-17 07:05
    关注

    从你的原矩阵看你的输入就有问题,原矩阵中只有2,

    评论

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法