那位高人可以帮我做这个C语言的题啊~~急!!!
来源:百度知道 编辑:UC知道 时间:2024/06/05 17:32:21
有五个人,手上系着红或白的丝带。五个人围成一圈坐着,A说他看见有三人是系白丝带,一人是系红丝带。B说他看见其它人系的都是红丝带。C说他看见其它人系的都是红丝带D说他看见有三人是系红丝带,一人是系白丝带
写一个C 程序
在线等答案
谢谢了
求每个人 都带的什么丝带啊
题没有错
要怎么求的这个程序
有五个人,手上系着红或白的丝带。五个人围成一圈坐着,A说他看见有三人是系白丝带,一人是系红丝带。B说他看见其它人系的都是红丝带。C说他看见其它人系的都是红丝带D说他看见有三人是系红丝带,一人是系白丝带。E不说话。
系红丝带的人说的都是谎话,系白丝带的人说的都是实话。问谁是系白丝带,谁是系红丝带?
写一个C 程序
在线等答案
谢谢了
求每个人 都带的什么丝带啊
题没有错
要怎么求的这个程序
有五个人,手上系着红或白的丝带。五个人围成一圈坐着,A说他看见有三人是系白丝带,一人是系红丝带。B说他看见其它人系的都是红丝带。C说他看见其它人系的都是红丝带D说他看见有三人是系红丝带,一人是系白丝带。E不说话。
系红丝带的人说的都是谎话,系白丝带的人说的都是实话。问谁是系白丝带,谁是系红丝带?
#include <stdio.h>
void cleararray(int *a);
void output(int *a);
void main()
{
int a[5];//存储五人信息,0代表红,1代表白
int b[4]={3,1,1,2}; //存储假设成立总白条的个数
int i,w,tw,j;//w代表假设成立的白条个数,tw存储推断过程中的白条个数
for (i=0;i<4;i++)
{
tw=5;
w=b[i];
cleararray(a);
for(j=0;j<4;j++)
{
if(i!=j)
{
if(b[j]!=b[i])
tw--;
}
}
if(tw==w)
{
a[i]=1;
a[4]=1;
output(a);
}
if(tw==(w+1))
{
a[i]=1;
a[4]=0;
output(a);
}
}
}
void cleararray(int *a)//数组清零
{
int i;
for(i=0;i<5;i++)
a[i]=0;
}
void output(int *a)
{
int i;
for(i=0;i<5;i++)
printf("%c:%s\n",i+'A',a[i]?"white":"red");
}
还是感觉你的题目有问题。。。。
按照B C说的话的话,全都是红丝带了。。
哦,这样还有的解。。
B说他看见其它人系的都是红丝带。 C说他看见其它人系的都是