| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 651 人关注过本帖
标题:请各位帮帮忙,看一下这个是什么意思
只看楼主 加入收藏
小王子的花
Rank: 1
等 级:新手上路
帖 子:24
专家分:9
注 册:2013-4-24
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
请各位帮帮忙,看一下这个是什么意思
#include <iostream>
#define MAXSIZE 100
#define OK 1
#define ERROR 0
using namespace std;
typedef int ElemType;
typedef struct{
    int i,j;     //矩阵的行下标及列下标
    ElemType e;
}Triple;
typedef struct{
    Triple data[MAXSIZE+1];    //三元组表
    int mu,nu,tu;      //矩阵的行数列数及非零元个数
}TSMatrix;



int CreateSMatrix(TSMatrix &M)      //创建矩阵
{
    cout<<"请输入稀疏矩阵的行数、列数和非零元个数:"<<endl;
    cin>>M.mu>>M.nu>>M.tu;
    if((M.mu<=0)||(M.nu<=0)||(M.tu<=0)||(M.tu>M.mu*M.nu))             //判断行值、列值、元素个数是否合法  
    return ERROR;
    for(int i=1;i<=M.tu;i++)
    {
        cout<<"请输入元素坐标及数值:"<<endl;
        cin>>M.data[i].i>>M.data[i].j>>M.data[i].e;
        if((M.data[i].i<=0)||(M.data[i].j<=0))           //控制行、列符合要求
        {
            cout<<"输入错误,请重新输入"<<endl;
            cin>>M.data[i].i>>M.data[i].j>>M.data[i].e;
        }
    }
return OK;
}




int DisplaySMatrix(TSMatrix &M)      //输出矩阵
{
    int n=0;
    for(int i=1;i<=M.mu;i++)
    {
        for(int j=1;j<=M.nu;j++)
        {
            if(M.data[n].i==i&&M.data[n].j==j)
            {
                cout<<M.data[n].e<<" ";
                n++;
            }
            else
            {
                cout<<"0"<<" ";
            }
        }
        cout<<endl;
    }
    cout<<endl;
    return OK;
}











 int AddSMatrix(TSMatrix M,TSMatrix N,TSMatrix &Q)//矩阵相加
{
    int i=0,j=0,k=0;
    while(i<M.tu&&j<N.tu)
    {
        switch(CompareTriple( M.data[i], N.data[j]))//这个CompareTriple实现的是什么功能啊        {
            case -1:Q.data[k++]=M.data[i++];
                break;
            case 1:Q.data[k++]=N.data[j++];
                break;
            default:Q.data[k]=M.data[i];
            Q.data[k].e+=N.data[j].e;
            if(Q.data[k].e!=0)
                k++;
            i++;
            j++;
            break;
        }
    }
    while(i<M.tu) Q.data[k++]=M.data[i++];
    while(j<N.tu) Q.data[k++]=N.data[j++];
    Q.tu=k;
    return OK;
}








int main()
{
    TSMatrix M,N,T,Q;
    CreateSMatrix(M);
    cout<<"矩阵M:"<<endl;
    DisplaySMatrix(M);
    CreateSMatrix(N);
    cout<<"矩阵N:"<<endl;
    DisplaySMatrix(N);
    AddSMatrix(M,N,Q);
    cout<<"矩阵M+N:"<<endl;
    DisplaySMatrix(Q);
    return OK;
}







            
            
        
        
        
搜索更多相关主题的帖子: 矩阵 include 
2013-05-06 20:46
小王子的花
Rank: 1
等 级:新手上路
帖 子:24
专家分:9
注 册:2013-4-24
收藏
得分:0 
就是想知道我这个CompareTriple函数应该怎么写,请各位一定帮帮忙,谢啦谢啦
        switch(CompareTriple( M.data[i], N.data[j]))//这个CompareTriple实现的是什么功能啊        {
            case -1:Q.data[k++]=M.data[i++];
                break;
            case 1:Q.data[k++]=N.data[j++];
                break;
            default:Q.data[k]=M.data[i];
            Q.data[k].e+=N.data[j].e;
            if(Q.data[k].e!=0)
                k++;
            i++;
            j++;
            break;
2013-05-07 08:34
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:7 
应该是这个
程序代码:
int CompareTriple(Triple a, Triple b)
{
    if (a.e && b.e) return  0;
    if (a.e)        return -1;
    else            return  1;
}


[fly]存在即是合理[/fly]
2013-05-07 14:48
小王子的花
Rank: 1
等 级:新手上路
帖 子:24
专家分:9
注 册:2013-4-24
收藏
得分:0 
回复 3楼 azzbcc
谢谢!!!
2013-05-07 16:07
快速回复:请各位帮帮忙,看一下这个是什么意思
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021518 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved