求高手指点一道C语言的题!(用数组)
两个乒乓球队比赛。各出三人。甲队为A、B、C三人,乙队为X、Y、Z三人。已抽签决定名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比。请编写程序找出三对选...
两个乒乓球队比赛。
各出三人。
甲队为A、B、C三人,乙队为X、Y、Z三人。
已抽签决定名单。
有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比。
请编写程序找出三对选手的名单。 展开
各出三人。
甲队为A、B、C三人,乙队为X、Y、Z三人。
已抽签决定名单。
有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比。
请编写程序找出三对选手的名单。 展开
2个回答
展开全部
这题用枚举的方法就可以做。
这题是C程序设计(第三版) 130页 6.15的原题。
#include <stdio.h>
void main()
{
char team[3]={'X','Y','Z'};
char result[3];
int i,j,k;/*i,j,k代表X,Y,Z和A,B,C对应的比赛顺序*/
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
for(k=0;k<3;k++)
{
if(i==k||j==k||i==j) /*避免出现出现多个X,Y,Z,就是XXY,XZZ之类的情况,一个人出现多次*/
continue;
result[0]=team[i];
result[1]=team[j];
result[2]=team[k];
if(result[0]!='X'&&result[2]=='Y')/*如果符合A不和X比,C不和X、Z比,就是C和Y比*/
printf("A:%c B:%c C:%c",result[0],result[1],result[2]);
}
}
}
}
这题是C程序设计(第三版) 130页 6.15的原题。
#include <stdio.h>
void main()
{
char team[3]={'X','Y','Z'};
char result[3];
int i,j,k;/*i,j,k代表X,Y,Z和A,B,C对应的比赛顺序*/
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
for(k=0;k<3;k++)
{
if(i==k||j==k||i==j) /*避免出现出现多个X,Y,Z,就是XXY,XZZ之类的情况,一个人出现多次*/
continue;
result[0]=team[i];
result[1]=team[j];
result[2]=team[k];
if(result[0]!='X'&&result[2]=='Y')/*如果符合A不和X比,C不和X、Z比,就是C和Y比*/
printf("A:%c B:%c C:%c",result[0],result[1],result[2]);
}
}
}
}
展开全部
main()
{
char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{
if(i!=j)
for(k='x';k<='z';k++)
{ if(i!=k&&j!=k)
{ if(i!='x'&&k!='x'&&k!='z')
printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);
}
}
}
}
{
char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
{
if(i!=j)
for(k='x';k<='z';k++)
{ if(i!=k&&j!=k)
{ if(i!='x'&&k!='x'&&k!='z')
printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询