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 } }