以下是运行结果:
第一轮1->A
2->B
3->C
4->D
5->E
第二轮
方案:1
1->B
2->A
3->D
4->E
5->C
方案:2
1->B
2->A
3->E
4->C
5->D
方案:3
1->B
2->C
3->A
4->E
5->D
方案:4
1->B
2->C
3->D
4->E
5->A
方案:5
1->B
2->C
3->E
4->A
5->D
方案:6
1->B
2->D
3->A
4->E
5->C
方案:7
1->B
2->D
3->E
4->A
5->C
方案:8
1->B
2->D
3->E
4->C
5->A
方案:9
1->B
2->E
3->A
4->C
5->D
方案:10
1->B
2->E
3->D
4->A
5->C
方案:11
1->B
2->E
3->D
4->C
5->A
方案:12
1->C
2->A
3->B
4->E
5->D
方案:13
1->C
2->A
3->D
4->E
5->B
方案:14
1->C
2->A
3->E
4->B
5->D
方案:15
1->C
2->D
3->A
4->E
5->B
方案:16
1->C
2->D
3->B
4->E
5->A
方案:17
1->C
2->D
3->E
4->A
5->B
方案:18
1->C
2->D
3->E
4->B
5->A
方案:19
1->C
2->E
3->A
4->B
5->D
方案:20
1->C
2->E
3->B
4->A
5->D
方案:21
1->C
2->E
3->D
4->A
5->B
方案:22
1->C
2->E
3->D
4->B
5->A
方案:23
1->D
2->A
3->B
4->E
5->C
方案:24
1->D
2->A
3->E
4->B
5->C
方案:25
1->D
2->A
3->E
4->C
5->B
方案:26
1->D
2->C
3->A
4->E
5->B
方案:27
1->D
2->C
3->B
4->E
5->A
方案:28
1->D
2->C
3->E
4->A
5->B
方案:29
1->D
2->C
3->E
4->B
5->A
方案:30
1->D
2->E
3->A
4->B
5->C
方案:31
1->D
2->E
3->A
4->C
5->B
方案:32
1->D
2->E
3->B
4->A
5->C
方案:33
1->D
2->E
3->B
4->C
5->A
方案:34
1->E
2->A
3->B
4->C
5->D
方案:35
1->E
2->A
3->D
4->B
5->C
方案:36
1->E
2->A
3->D
4->C
5->B
方案:37
1->E
2->C
3->A
4->B
5->D
方案:38
1->E
2->C
3->B
4->A
5->D
方案:39
1->E
2->C
3->D
4->A
5->B
方案:40
1->E
2->C
3->D
4->B
5->A
方案:41
1->E
2->D
3->A
4->B
5->C
方案:42
1->E
2->D
3->A
4->C
5->B
方案:43
1->E
2->D
3->B
4->A
5->C
方案:44
1->E
2->D
3->B
4->C
5->A
算法可能不是最优的,希望大家探讨。
代码用的是cout输出函数,楼主应该知道如何改用printf输出的。
程序代码:
#include<iostream>
int _tmain()
{
int i,j,k,l,m;
int num=0;
char people[]={'1','2','3','4','5'};
char object[]={'A','B','C','D','E'};
cout<<"第一轮";
for(j=0;j<5;j++)
{
cout<<people[j]<<"->"<<object[j]<<" ";
}
cout<<endl<<"第二轮"<<endl;
for (i=1;i<5;i++)
{
for(j=0;j<5;j++)
{
if(j!=1 && j!=i)
{
for(k=0;k<5;k++)
{
if(k!=2 && k!=i && k!=j)
{
for(l=0;l<5;l++)
{
if(l!=3&& l!=i && l!=j && l!=k)
{
for(m=0;m<5;m++)
{
if(m!=4&& m!=i && m!=j && m!=k&& m!=l)
{
num++;
cout<<"方案:"<<num<<" ";
cout<<people[0]<<"->"<<object[i]<<" ";
cout<<people[1]<<"->"<<object[j]<<" ";
cout<<people[2]<<"->"<<object[k]<<" ";
cout<<people[3]<<"->"<<object[l]<<" ";
cout<<people[4]<<"->"<<object[m]<<endl;
}
}
}
}
}
}
}
}
}
getchar();
return 0;
}