两个乒乓球对进行比赛,各出3人,甲队为A,B,C,乙队为X,Y,Z。已抽签决定比赛名单,已知A不和X比,C不和X,Z比,编程找出匹配名单
法1:
int match()
{
char a, b, c;//定义甲队队员变量
for (c = 'x'; c <= 'z'; c++) //甲队C可以和x,y,z比赛
{
//从c开始判断
if (c != 'x' && c != 'z')//且满足c不等于x和z
{
for (a = 'x'; a <= 'z'; a++) //甲队a可以和x,y,z比赛
{
if (a != c && a != 'x')//且满足a不等于z,并且不与c匹配同一个人
{
//a和c的对手不重复
for (b = 'x'; b <= 'z'; b++) 甲队b可以和x,y,z比赛
{
//b和a,c的对手均不重复
if (b != a && b != c)
{
printf("a-%c b-%c c-%c\n", a, b, c);
}
}
}
}
}
}
return 0;
}
int main()
{
int tmp = match();//临时变量接受
printf("%d", tmp);//打印
return 0;
}
法2:
//3*3*3 27种可能性 根据已知条件 排除所以不可能的情况 剩余的就是我们要的
void Match()
{
for(char A='X'; A<='Z'; A++)
{
for(char B='X'; B<='Z'; B++)
{
for(char C='X'; C<='Z'; C++)
{
if(A!='X' && C!='X' && C!='Z' && A!=B && A!=C && B!=C)
{
printf("A->%c\n", A);
printf("B->%c\n", B);
printf("C->%c\n", C);
}
}
}
}
}
int main()
{
match();
}
|