该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#define N 100
typedef int DataType;
typedef struct{
int i,j;
DataType v;
}TriTupleNode;
typedef struct{
TriTupleNode data[N];
int m,n;
int t;
}TriTupleTable;
void TransMatrix(TriTupleTable *b,TriTupleTable *a);
void main()
{
TriTupleTable *a,*b;
TriTupleNode node[N];
int num;
node[0].i=0;node[0].j=1;node[0].v=5;
node[1].i=0;node[1].j=4;node[1].v=8;
node[2].i=1;node[2].j=0;node[2].v=1;
node[3].i=1;node[3].j=2;node[3].v=3;
node[4].i=2;node[4].j=1;node[4].v=-2;
node[5].i=3;node[5].j=0;node[5].v=6;
printf("转置前的矩阵是:\n");
for(num=0;num<=5;num++)
{
a->data[num].i=node[num].i;
a->data[num].j=node[num].j;
a->data[num].v=node[num].v;
printf("%2d,%2d,%2d\n",a->data[num].i,a->data[num].j,a->data[num].v);
}
a->m=4;a->n=5;a->t=6;
TransMatrix(b,a);
printf("转置后的矩阵是:\n");
for(num=0;numt;num++)
printf("%2d,%2d,%2d\n",b->data[num].i,b->data[num].j,b->data[num].v);
}
void TransMatrix(TriTupleTable *b,TriTupleTable *a)
{
int num,k,p=0;
for(k=0;k<=5;)
{
for(num=0;num<=5;num++)
{
if(a->data[num].j==p)
{
b->data[k].i=a->data[num].j;
b->data[k].j=a->data[num].i;
b->data[k].v=a->data[num].v;
k++;
}
}
p++;
}
b->m=a->m;b->n=a->n;b->t=a->t;
}