C语言实现(乒乓球比赛)

使用VS2019

ISO C++14 标准 (/std:c++14)

乒乓球比赛

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

算法1:局限性:abc按顺序匹配,先匹配c,再匹配a,最后匹配b;

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

#include 
int main() {
	//2人对打,那么c不与x,不与z,那么c只能与y打;
	//先匹配c,再匹配a,最后匹配b;
	//本算法是arry1[3] = { 'c','a','b' };而arry2[3]的顺序随意;
	char arry1[3] = { 'c','a','b' };
	char arry2[3] = { 'x','y','z' };
	char temp1 ='kong';
	char temp2 = 'kong';
	for (int i = 0; i <= 2; i++) {
		for (int j = 0; j <= 2; j++) {
			char contend1 = arry1[i];
			char contend2 = arry2[j];
			
			//下面是c进行分配的逻辑
			if ((contend1 == 'c') && (contend2 == 'x')) continue;
			else if ((contend1 == 'c') && (contend2 == 'z')) continue;
			else if (contend1 == 'c') {				
				printf("c对应%c\n", arry2[j]);
				temp1 = arry2[j];
				break;
			}			
				
			//下面是a进行分配的逻辑
			if (contend1 == 'a' && contend2 == 'x') continue;
			else if (contend1 == 'a' && contend2 == temp1) continue;
			else if (contend1 == 'a') {
				temp2 = arry2[j];
				printf("a对应%c\n", arry2[j]);
				break;
			}

			//下面是b进行分配的逻辑
			if (contend1 == 'b' && contend2 == temp1) continue;
			else if (contend1 == 'b' && contend2 == temp2) continue;
			else if (contend1 == 'b') {				
				printf("b对应%c\n", arry2[j]);
				break;
			}
		}
	}	
}

你可能感兴趣的:(C)