您的位置:首页 > 编程语言 > C语言/C++

C语言编程入门必做题-编程解决推理题

2006-08-30 17:23 344 查看
2. A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些
人参加了竞赛:

(1)A参加时,B也参加;

(2)B和C只有一个人参加;

(3)C和D或者都参加,或者都不参加;

(4)D和E中至少有一个人参加;

(5)如果E参加,那么A和D也都参加。

在论坛上看到的,入门者必做题,想起一年前有人问我这个题,我一头雾水,根本不会。现如今,我又看到了,勾起了我的回忆。为什么我那个时候不会呢?真的不知道,其实这个问题很简单的。

判断ABCDE有没有参加,也就是说,ABCDE各有两个取值,要么参加(1),要么不参加(0),然后ABCDE满足5个条件,只要把5个条件表示成计算机能够理解的布尔表达式就可以了,然后对ABCDE的所有指派验证表达式,满足了就停下来,肯定可以求出解。

就是这么个简单问题,我为什么那个时候不会呢?下面是我刚才写的一段C代码,求出的答案是C,D参加了,别人没有参加。


#include "stdio.h"






int main()...{


int a,b,c,d,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(a && !b) continue;


if((b && c) || (!b && !c)) continue;


if(( c && !d) || (!c && d)) continue;


if (!d && !e) continue;


if (e && (!a || !d)) continue;


printf("a %d b %d c %d d %d e %d ",a,b,c,d,e);


return 0;


}


return 0;


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: