2. A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些
人参加了竞赛:
(1)A参加时,B也参加;
(2)B和C只有一个人参加;
(3)C和D或者都参加,或者都不参加;
(4)D和E中至少有一个人参加;
(5)如果E参加,那么A和D也都参加。
若为1
则代表他参加
若为0
则代表他未参加
大家看看结果对不对
#include<stdio.h>
void main()
{
int a,b,c,d,e;
int text(int a,int b,int c,int d,int e);
for(a=0;a<2;a++)
for(b=0;b<2;b++)
for(c=0;c<2;c++)
for(d=0;d<2;d++)
for(e=0;e<2;e++)
if(text(a,b,c,d,e))
printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d",a,b,c,d,e);
getchar();
}
int text(int a,int b,int c,int d,int e)
{
int usb[5]={0};
int result=1;
int i;
{if((a==1)&&(b==1))
usb[0]=1;
}
{
if(((b==1)&&(c==0))||((b==0)&&(c==1)))
usb[1]=1;
}
{
if(((c==0)&&(d==0))||((c==0)&&(d==1)))
usb[2]=1;
}
{
if(!((d==0)&&(e==0)))
usb[3]=1;
}
{
if((e==1&&a==1&&d==1) )
usb[4]=1;
}
for(i=0;i<5;i++)
result=result*usb[i];
return result;
}