注册 登录
编程论坛 数据结构与算法

麻烦看看哪里有问题,关于矩阵相加的程序

小王子的花 发布于 2013-05-07 13:34, 581 次点击
int AddSMatrix(TSMatrix &M,TSMatrix &N,TSMatrix &Q)//矩阵相加
{
    int i=1,j=1,k=1;
    Q.data[k].i=M.data[i].i;
    Q.data[k].j=M.data[i].j;
    while(i<M.tu&&j<N.tu)
    {
        if(M.data[i].i==N.data[i].i&&M.data[j].j==N.data[j].j)
        {
            Q.data[k]=M.data[i];
            Q.data[k].e+=N.data[j].e;
            i++;
            j++;
            if(Q.data[k].e!=0)k++;
            return OK;
        }
        else
        {
            if(M.data[i].i<N.data[i].i||(N.data[i].i==M.data[i].i&&M.data[j].j<N.data[j].j))
            {
                Q.data[k]=M.data[i];
                i++;
                k++;
                return OK;
            }
            else
            {
                Q.data[k]=N.data[j];
                j++;
                k++;
                return OK;
            }
        }
    }
    while(i<M.tu)
    {
        Q.data[k]=M.data[i];
        j++;
        k++;
    }
    while(j<N.tu)
    {
        Q.data[k]=N.data[j];
        i++;
        k++;
    }
    Q.tu=k;
    return OK;
 }
2 回复
#2
邓士林2013-05-07 21:03
我觉得没必要这样吧!直接用个二重循环,然后将对象坐标的元素进行相加不就可以了么?
#3
小王子的花2013-05-08 10:15
可以具体一点不?
用三元组存的可以这样相加吗?
1