题目链接:
解题思路:
- 此类关于逻辑思维的题目,
在程序设计题目里非常常见,
做法也非常通用,
就是列举所有可能的情况,
然后根据筛选条件把不符合条件的情况筛选掉,
剩下的就是我们要求的解。
- 需要注意的是:
根据生活常识以及比赛常识,
俩个人不能匹配到同样的对手,
所以要保证其匹配结果的唯一性,
即 i,j,k 三个数不可能相同。
参考代码:
#include<bits/stdc++.h>
using namespace std;
int main( )
{
char arr[2][3] = {{'a','b','c'},{'x','y','z'}};
for(int i = 1;i <= 3;i++)//a的选手可能有三位
{
for(int j = 1;j <= 3;j++)//b的选手也可能有三位
{
for(int k = 1;k <= 3;k++)//c的选手也可能有三位
{
if((i!=j)&&(i!=k)&&(j!=k) && (i!=1)&&(k!=1)&&(k!=3))//限制条件
{
printf("%c with %c\n",arr[0][0],arr[1][i-1]);
printf("%c with %c\n",arr[0][1],arr[1][j-1]);
printf("%c with %c\n",arr[0][2],arr[1][k-1]);
}
}
}
}
return 0;
}