[讨论]比赛。。。。。
一个题目:一个比赛,2个队的人,1:A,B,C 2:X,Z,Y 他们要比赛,但是A说他不想和X比赛,C说他不想和X,Z比赛,编出他们的出赛表!! 应该做呢?
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
int i,j;
char b[3],c[3]={'x','y','z'};
for(i=0;i<3;i++)
{
b[0]=c[i];
for(j=0;j<3;j++)
{
if(i!=j)
{
b[1]=c[j];
b[2]=c[3-i-j];
if(b[0]!='x'&&b[2]!='x'&&b[2]!='z')
printf("A----%c\nB----%c\nC----%c\n",b[0],b[1],b[2]);
}
}
}
}
但是我感觉我写的只能适合这个题目,要是数组一大就不行 了,希望有更好一点的
----------------解决方案--------------------------------------------------------
#include "stdio.h"
static int count;
void main()
{
static char i,j,k;
for(i='x';i<='z';i++)
{
for(j='x';j<='z';j++)
{
if (i!='x')
{
for(k='x';k<='z';k++)
{
if (k!='x'&&(k!='z'))
{
count++;
printf("A:%c,B:%c,C:%c",i,j,k);
printf("\n");
}
}
}
}
}
getch();
}
----------------解决方案--------------------------------------------------------
楼上虽然比我好一点点但是本质并没有什么变化,要是需要分组的认输一多的话这种用循环做出来的排列就行不通了,
希望有人能写一个第归来做c语言中的排列组合问题,
----------------解决方案--------------------------------------------------------