注册 登录
编程论坛 新人交流区

[求助]:C习题!

hugh陈 发布于 2007-10-17 22:20, 650 次点击
两个乒球队进行比赛,各出三人,甲队为A,B,C三人,已队为x,y,z三人,已经抽签决定比赛名单.有人向队员打听比赛的名单,A说他不和 x比,C说他不和 x,z比,请编程序找出3队比赛选手的名单!
18 回复
#2
_20072007-10-17 22:23

是个好习题,我试试,不知道行不行。

#3
liwanlei2007-10-17 22:40
撒谎
#4
longfeng8672007-10-18 10:12
穷举法~~~~~
跟下面这个差不多~~~~
/*有A,B,C,D,E,五人,每人额头上都帖着一张或黑或白的纸。五人对坐,每人都能看见别人的,
但看不见自己的。而且黑的撒谎,白的诚实。
A说:“我看见有三个人的是白纸,一人是黑纸”。
B说:“我看见四个人的都是黑纸”。
C说:“我看见有一个人的是白纸,三个人是黑纸”。
D说:“我看见四个人的都是白纸”。
E什么也没有说。*/
#include <stdio.h>
main()
{
int a,b,c,d,e; //黑色为0,白色为1
for(a=0;a<=1;a++) //5个人头上帖纸的全部可能
for(b=0;b<=1;b++)
for(c=0;c<=1;c++)
for(d=0;d<=1;d++)
for(e=0;e<=1;e++)
if((a&&b+c+d+e==3||!a&&b+c+d+e!=3)
&&(b&&a+c+d+e==0||!b&&a+c+d+e!=0)
&&(c&&a+b+d+e==1||!c&&a+b+d+e!=1)
&&(d&&a+b+c+e==4||!d&&a+b+c+e!=4))
{
printf("A is %s:\n",a?"White":"Black");
printf("B is %s:\n",b?"White":"Black");
printf("C is %s:\n",c?"White":"Black");
printf("D is %s:\n",d?"White":"Black");
printf("E is %s:\n",e?"White":"Black");
}
}

[此贴子已经被作者于2007-10-18 10:15:37编辑过]

#5
hugh陈2007-10-19 12:26
回复:(longfeng867)穷举法~~~~~跟下面这个差不多~~...

麻烦把答案写下来了!
急需!!

#6
liux9452007-10-19 15:31
3个for就搞定了 穷举算法
#7
hugh陈2007-10-19 15:33

那写一下嘛!!

#8
tuxinsun2007-10-19 15:42
d
#9
lyl6257602007-10-19 16:04
厉害
#10
C语言的深度2007-10-23 11:24
自己思考``
#11
anyboy2007-10-23 11:31
#12
appleaon2007-10-23 16:38
这里真的都是初学者吗?
#13
阳阳和圆圆2007-10-23 17:13
不好算
#14
长城2007-10-23 22:04

我弄了半天,终于弄出来了 .发给你吧........
代码如下:
#include "stdio.h"
void main()
{
char A,B,C,a[]={'x','y','z'};
char b[2];
int i,j=0;
for(i=0;i<=2;i++)
if(a[i]!='x')
{
{
b[j]=a[i];
j++;
}
}
for(i=0;i<=j-1;i++)
{
if(b[i]!='z')
C=b[i];
else
A=b[i];
}
for(i=0;i<=2;i++)
if(a[i]!=A&&a[i]!=C)
B=a[i];
printf("\nA=%c,B=%c,C=%c",A,B,C);
}

#15
yuwei50002007-10-23 22:31
恩,这题目有创薏~~
#16
yanlei7772007-10-24 00:20
#17
hczsea2007-10-24 13:16
呵呵,逻辑关系啊,要简单还真不容易
#18
huricn2007-10-24 13:48
我看看
1