我看到这到题时也比较迷糊,自己可以很轻松的判断出法案但是不知道怎用代码写出来,百度了一下其实挺简单的,但是百度的答案都是顺着写出来,感觉判断的条件太
多了,所以自己写了一下。从条件最多的c入手可以直接确定他的对手,避免进行不必要的循环。
void rival(){
char i,j,k;//c-i,a-j,b-k
for (i='x'; i<='z'; i++) {
if (i!='x' && i!='z') {//先满足c的条件再往下执行
for (j='x'; j<='z'; j++) {
if (j!='x' && j!=i) { //a的对手不是x,而且不能和c的对手重复
for (k='x'; k<='z'; k++) {
if (k!=i && k!=j) { //b的对手不能喝a,c的对手重复
printf("a vs %c; b vs %c ;c vs %c\n",j,k,i);//结果为a vs z; b vs x ;c vs y
}
}
}
}
}
}
}