c语言:两个乒乓球队进行比赛,各出3人,A说他不和x比,C说他不和x,z比。找出3对赛手的名单

两个乒乓球队进行比赛,各出3人。甲队为A,B,C3人,甲队为x,y,z3人。抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和x比,C说他不和x,z比。编程找出3对赛手的名单。

解:问题分析:假设i是A的对手,j是B的对手,k是C的对手,i,j,k分别是x,y,z之一,且i,j,k互不相等,同时还要满足条件i != ‘x‘&&k != ‘x‘&&k != ‘z‘。

程序:

#include<stdio.h>

int 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("A——%c\nB——%c\nC——%c\n", i, j, k);

}

}

}

}

}

}

return 0;

}

结果:

A——z

B——x

C——y

请按任意键继续. . .

时间: 2024-10-07 09:32:28

c语言:两个乒乓球队进行比赛,各出3人,A说他不和x比,C说他不和x,z比。找出3对赛手的名单的相关文章

C语言必会面试题(3、耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)

3.耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3....凡是报到"3"就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒.请找出它原来的序号. int a[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13}; int number = 13;//记录当前人数 int count = 0;//1,2,3报数 int i = 0; while (number > 1) { if

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

package C; public class Bisai { public static void main(String[] args) { String a="xyz",b="",c=""; for (int i = 0; i < 3; i++) { if(a.substring(i,i+1).equals("x")||a.substring(i,i+1).equals("z")) { cont

比赛分组 功能描述:两个乒乓球队进行比赛,各出三人。 甲队为A、B、C三人,乙队为X、Y、Z 三人,已经抽签决定了比赛名单。 已知A 不和X 比,C 不和X、Z 比,请问比赛名单是什么。(用到了三重循环)

当时看到题目的时候自己就晕了,不懂什么意思,做出来的结果竟然是一个人比好几个人,当时还觉得一个人可以打几场呢!==!后来求助大神得到了答案,共勉一下吧~~ public static void main(String[] args) { for(int a = 1 ;a<=3;a++){ for(int b = 1 ;b<=3;b++){ for(int c = 1 ;c<=3;c++){ if(a != 1 && c != 1 && c != 3 &am

习题3. 2个乒乓球队比赛,甲队A, B, C3人,乙队X, Y, Z3人。已抽签决定比赛名单。A说他不和X比,C说他不和X, Z比,请编程找到3对赛手的名单。

1 #include<stdio.h> 2 int main(void) 3 { 4 char a,b,c; 5 for(char i='X';i<='Z';++i) 6 { 7 a=i; 8 for(char j='X';j<='Z';++j) 9 { 10 if(i==j) 11 continue; 12 b=j; 13 for(char k='X';k<='Z';++k) 14 { 15 if(i==k || j==k) 16 continue; 17 c=k; 18

R语言两种方式求指定日期所在月的天数

             R语言两种方式求指定日期所在月的天数 days_monthday<-function(date){ m<-format(date,format="%m") days31<-c("01","03","05","07","08","10","12") days30<-c("04",&

【c语言】 给一组数,有两个数只出现了一次,其他所有数都是成对出现的。找出这两个数

// 给一组数,有两个数只出现了一次,其他所有数都是成对出现的.找出这两个数. #include <stdio.h> void find_two_diff(int arr[], int len, int *num1, int *num2)//设置两个返回型参数 { int i = 0; int ret = 0; int pos = 1; *num1 = 0; *num2 = 0; for (i = 0; i < len; ++i) { ret ^= arr[i]; } // 找出ret中

【C语言】给一组组数,只有两个数只出现了一次,其他所有数都是成对出现的,找出这两个数。

//给?组组数,只有两个数只出现了一次,其他所有数都是成对出现的,找出这两个数. #include <stdio.h> int find_one_pos(int num) //找一个为为1的位置 { int n = 0; while(num) { if (num & 1 == 1) break; else { n++; num >>= 1; } } return n; } void find_two_differ(int arr[], int len, int *num1,

C语言:对传入sp的字符进行统计,三组两个相连字母“ea”&quot;ou&quot;&quot;iu&quot;出现的次数,并将统计结果存入ct所指的数组中。-在数组中找出最小值,并与第一个元素交换位置。

//对传入sp的字符进行统计,三组两个相连字母“ea”"ou""iu"出现的次数,并将统计结果存入ct所指的数组中. 1 #include <stdio.h> 2 #include <string.h> 3 #pragma warning (disable:4996) 4 void fun(char*sp ,int *ct) 5 { 6 int a=0, b=0, c=0; 7 while (*sp != '\0') 8 { 9 if (*s

C语言编程 找出数列中只出现一次的两个数

原题:一个数组中只有两个数字是出现一次,其他所有数字都出现了两次.找出这两个只出现一次的数字,编程实现. 此题要用到在数列中找出只出现一次的一个数字的方法参考https://blog.51cto.com/14232799/2382172 此题明显无法一次性将两个数都找出,所以需要将数列分为两部分,每一部分有一个只出现一次的数,那么此时需要的就是分离数列的条件. 沿用找出一个数时的思想,将数列进行相互异或,但这次所得的值不是只出现一次的那个数了,因为只出现一次的数有两个,所以此次计算得到的是只出现