永发信息网

高手帮我看看下面这个程序怎么写啊? 太难了..

答案:1  悬赏:80  手机版
解决时间 2021-04-11 16:55
  • 提问者网友:容嬷嬷拿针来
  • 2021-04-10 21:08

某公司有7名保安人员:赵、钱、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制一程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下:

赵:星期二、星期四

钱:星期一、星期六

孙:星期三、星期日

李:星期五

周:星期一、星期四、星期六

吴:星期二、星期五

陈:星期三、星期六、星期日

(我要找一个通用的程序,就是这七个人随便输入自己认为合适的日子。不是求上面这个例子的结果. 谢谢 感激不尽..)

最佳答案
  • 五星知识达人网友:风格不统一
  • 2021-04-10 22:25
#include "stdafx.h"
#include <iostream>

using namespace std;

static char * day[] =
{
"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"
};

int _tmain(int argc, _TCHAR* argv[])
{
int a, b, c, d, e, f, g, s;

d = 4;
f = 1;
s = 0;
for( a = 0; a < 7; a++ )
{
if( (a !=1 && a != 3) || a == d || a == f )
continue;

for( b = 0; b < 7; b++ )
{
if( (b != 0 && b != 5) || b == a || b == d || b == f )
continue;

for( c = 0; c < 7; c++ )
{
if( (c != 2 && c != 6) || c == b || c == a || c == d || c == f )
continue;
for( e = 0; e < 7; e++ )
{
if( (e != 0 && e != 3 && e != 5) || e == d || e == c || e == b || e == a || e == f)
continue;
for( g = 0; g < 7; g++ )
{
if( (g != 2 && g != 5 && g != 6) || g == f || g == e || g == d || g == c || g == b || g == a )
continue;
++s;
cout << "Solution: " << s << endl;
cout << "赵\t钱\t孙\t李\t周\t吴\t陈" << endl;
cout << "==============================================================" << endl;
cout << day[a] << "\t" << day[b] << "\t" << day[c] << "\t" << day[d] << "\t"
<< day[e] << "\t" << day[f] << "\t" << day[g] << endl << endl;
}
}
}
}
}
}

运行结果:
Solution: 1
赵 钱 孙 李 周 吴 陈
==============================================================
星期四 星期一 星期三 星期五 星期六 星期二 星期日

Solution: 2
赵 钱 孙 李 周 吴 陈
==============================================================
星期四 星期一 星期日 星期五 星期六 星期二 星期三

Solution: 3
赵 钱 孙 李 周 吴 陈
==============================================================
星期四 星期六 星期三 星期五 星期一 星期二 星期日

Solution: 4
赵 钱 孙 李 周 吴 陈
==============================================================
星期四 星期六 星期日 星期五 星期一 星期二 星期三
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯