c语言问题,请帮帮我javascript:insertText('06','em');
A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:(1)A参加时,B也参加;
(2)B和C只有一个人参加;
(3)C和D或者都参加,或者都不参加;
(4)D和E中至少有一个人参加;
(5)如果E参加,那么A和D也都参加。
穷举法 假设0表示不参加 ,1表示参加
将每一种情况都用代码表示出来
for循环、if语句、逻辑运算符、continue
程序代码:#include <stdio.h>
#include <stdbool.h>
int main( void )
{
// 总共就32种情况,那穷举最合算
for( unsigned i=0; i!=1u<<5; ++i )
{
bool a = i&(1u<<0);
bool b = i&(1u<<1);
bool c = i&(1u<<2);
bool d = i&(1u<<3);
bool e = i&(1u<<4);
// 以下条件随便写,只要符合题意就行
if( a && !b ) // (1)A参加时,B也参加
continue;
if( b+c != 1 ) // (2)B和C只有一个人参加;------ 补成“有且只有一个人参加”
continue;
if( c != d ) // (3)C和D或者都参加,或者都不参加;
continue;
if( !d && !e ) //(4)D和E中至少有一个人参加;
continue;
if( e && !(a&&d) ) // (5)如果E参加,那么A和D也都参加。
continue;
printf( "%u%u%u%u%u\n", a, b, c, d, e ); // 00110
}
}