我想问一下B->data[j].row=A.data[i].col
;B->data[j].col=A.data[i].row; B->data[j].e=A.data[i].e;这三句话能不能合并成为B->data[j]=A.data[i]一句话呀?
这个是原来的算法。
void TransposeTSMatrix(TSMatrix A, TSMatrix * B)
{ /*把矩阵A转置到B所指向的矩阵中去。矩阵用三元组表表示*/
int i , j, k ; B->m= A.n ; B->n= A.m ; B->len= A.len ;
if(B->len>0)
{ j=1;
for(k=1; k<=A.n; k++)
for(i=1; i<=A.len; i++)
if(A.data[i].col==k)
{B->data[j].row=A.data[i].col
B->data[j].col=A.data[i].row; B->data[j].e=A.data[i].e;
j++;
}
}/*end of if(B->len>0) */
}/*end of TransposeTSMatrix*/
直接赋值就是row赋值给row,col赋值给col了
不行,AB行列交错的,如果直接赋值,行列是一样的了。结构体变量可以直接=赋值。