C++ 编程 两个乒乓球队进行比赛o

两个乒乓球队进行比赛,各自出3人。甲队为A,B,C3人,乙队为X,Y,Z3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3对赛手的名单。
下面是我写的

求大神指点,为什么会重复出现 ?
#include<iostream>
using namespace std;
int main()
{
int i,j,k; //i是A的对手,j是B的对手,k是C的对手
for(i='X';i<='Z';i++)

for(j='X';j<='Z';j++)

for(k='X';k<='Z';k++)
if(i!='X' && k!='X' && k!='Z')
cout<<"A--Z"<<" "<<"B--X"<<" "<<"C--Y"<<endl;

return 0;
}

你少了一个条件,那就是不能多对一,比如,abc都是同一个对手,我们来看条件,i=‘y',j=’x‘,k=’y'条件成立的,所以,我尽量不改你程序,给你改写的程序:
int a,b,c;//abc代表ABC,你也可以改成大写,也可以改成数据类型为char(后面就不用转换了)
for(a='X';a<='Z';a++)
for(b='X';b<='Z';b++)
for(c='X';c<='Z';c++)
if(a!='X'&&c!='X'&&c!='Z'&&a!=b&&b!=c&&c!=a)
{
cout<<"A->"<<(char)a<<'\n'<<"B->"<<(char)b<<'\n'<<"C->"<<(char)c<<endl;//输出A,B,C各自对手。
return 0;//条件成立,直接退出.
}
温馨提示:答案为网友推荐,仅供参考
相似回答