输出转置后的矩阵显示的都是负的大数,帮忙看下
在vc6.0中单步的时候,用F11不能进入转置函数,
但是输出原矩阵M没问题,输出转置后的矩阵T就不行了。
//==================矩阵转置==========================
#include <iostream>
using namespace std;

const int MAXSIZE=12500;
const int MAXRC=100;
const int MAX=4;
//===================三元组===========================
typedef struct
{
    int i,j;
    int e;
}Triple;
//====================矩阵============================
typedef struct
{
    Triple data[MAXSIZE+1];
    int mu,nu,tu;
}TSMatrix;
//===================矩阵转置=========================
void TransposeSMatrix(TSMatrix M,TSMatrix & T)
{
    T.mu=M.nu;
    T.nu=M.mu;
    T.tu=M.tu;
    int q=0;
    if(T.tu)
    {
    //    int q=0;
        for(int col=1;col<=M.nu;col++)
        {
            for(int p=1;p<M.tu;p++)
            {
                if(M.data[p].j==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;
                    ++q;
                }
            }
        }
    }
    for(q=0;q<T.tu;q++)//===========不能输出T===========
    {
        cout<<T.data[q].i<<T.data[q].j<<T.data[q].e<<endl;
    }
}
//====================================================
int main()
{
    TSMatrix M,T;
    cout<<"Input mu nu tu(M)"<<endl;//输入M
    cin>>M.mu>>M.nu>>M.tu;
    cout<<"INput value of i j e(M)"<<endl;
    //for(int m=0;m<MAX;m++)
    for(int m=0;m<M.tu;m++)
    {
        cin>>M.data[m].i>>M.data[m].j>>M.data[m].e;
    }
    cout<<"The m your input is:"<<endl;
    for(m=0;m<M.tu;m++)//===========输出M矩阵正确===============
    {
        cout<<M.data[m].i<<M.data[m].j<<M.data[m].e<<endl;
    }
    cout<<"================================="<<endl;
    TransposeSMatrix(M,T);
/*    for(int q=0;q<T.tu;q++)//============error===========
    {
        cout<<T.data[q].i<<T.data[q].j<<T.data[q].e<<endl;
    }*/
    return 0;
}