| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 343 人关注过本帖
标题:这是一个稳定婚姻问题,调试时出现了一些问题,有没有哪个大神知道哪里出问 ...
只看楼主 加入收藏
BMFLY
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-9-21
结帖率:0
收藏
已结贴  问题点数:5 回复次数:1 
这是一个稳定婚姻问题,调试时出现了一些问题,有没有哪个大神知道哪里出问题了呀???
# include <iostream>
using namespace std;
const int MAX=4;
bool ChangFriend(const int libLady[][MAX+1], int v, int oldF, int newF); //判断是否要换男友

int main()
{
    int libMan[MAX][MAX]={{2,1,3,0},{0,2,3,1},{2,3,1,0},{1,3,2,0}}; //存储男士所喜欢的女士需要的排列表
    int libLady[MAX][MAX+1]={{0,3,1,2,MAX},{1,3,2,3,MAX},{0,2,3,1,MAX},{1,0,3,2,MAX}};//存储女士所喜欢的男士序号的排列表
    int man[MAX+1]={0};a
    int lady[MAX]={MAX,MAX,MAX,MAX};
    int i=0;

    while (i<MAX)
    {
        int v=libMan[i][man[i]];//i号男喜欢v号女
        if (i==lady[v])//i号男就是v号女当前男友,跳过,处理下一个男士
            i++;
        else if (ChangeFriend(libLady,v,lady[v],i))//若i号男比v号女当前男友优秀,则v抛弃其前男友,重新选择i
        {
            int t=lady[v];//存储前男友序号
            man[lady[v]]++;//抛弃前男友, 即前男友选择其“次喜欢女”
            lady[v]=i;//选择i号男为新男友
            if(t>i)//前男友序号t在新男友i之后,则今后顺序前行可以处理t
                i++;//处理下一个男士
            else //前男友序号t在新男友i之前,返回t,否则会漏掉t
                i=t;
        }
        else //继续处理i号男的“此喜欢女”
            man[i]++;
    }

    for (int i=0; i<MAX; i++)//输出每位男士追求女士的次数
        cout<<man[i]+1<<",";
    cout<<end;

    for(int i=0; i<MAX; i++)//输出每位男士的妻子的序号
        cout<<libMan[i][man[i]]<<",";
    cout<<end;

    for(int i=0; i<MAX; i++)//输出每位女士的丈夫的序号
        cout<<lady[i]<<",";
    cout<<end;
    system("pause");
    return 0;
}

bool ChangeFriend(const int libLady[][MAX+1], int v, int oldF, int newF)//判断是否需要换男友
{
    for(int i=0; i<MAX; i++)
    {
        if(libLady[v][i]==oldF)
        {
            oldF=i;
            break;
        }
    }
    for (int i=0; i<MAX; i++)
    {
        if(libLady[v][i]==newF)
        {
            newF=i;
            break;
        }
    }
    return (oldF>newF);
}
搜索更多相关主题的帖子: include 婚姻 男士 
2013-09-21 17:35
blueskiner
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:227
专家分:707
注 册:2008-9-22
收藏
得分:5 
// line 10
 int man[MAX+1]={0};a

// BY THE WAY...二维数组很渣渣。。。请用结构体或者类
2013-09-21 18:39
快速回复:这是一个稳定婚姻问题,调试时出现了一些问题,有没有哪个大神知道哪里 ...
数据加载中...
 
   



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

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