26.两个乒乓球队进行比赛
26.两个乒乓球队进行比赛,各处3个人。甲队为A,B,C3人,乙队为X,Y,Z三人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请用程序找出3对赛手的名单。
解析:分析题目,得出A--z,B--x,C--y。用计算机处理此问题的时候,不可能立即就得出此结论,而必须对每一种成对的组合一一检验,看他们是否符合条件。开始时,并不知道A,B,C与X,Y,Z中哪一个比赛,可以假设:假设A与i比赛,B与j比赛,C与k比赛;i,j,k分别是X,Y,Z之一,且i,j,k互不相等。
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 char i,j,k; //假设A与i比赛,B与j比赛,C与k比赛;i,j,k分别是X,Y,Z之一,且i,j,k互不相等 6 for(i='x';i<='z';i++) 7 for(j='x';j<='z';j++) 8 if(i!=j) 9 for(k='x';k<='z';k++) 10 if(i!=k&&j!=k) 11 if(i!='x'&&k!='x'&&k!='z') 12 printf("A--%c\nB--%c\nC--%c\n",i,j,k); 13 return 0; 14 }