| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 499 人关注过本帖
标题:一道逻辑题,请高手指导
只看楼主 加入收藏
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
结帖率:79.37%
收藏
已结贴  问题点数:5 回复次数:2 
一道逻辑题,请高手指导
在a,b,c,d,e,f六件物品中,按下面的条件能选出的物品是:
(1)a,b两样至少有一样
(2)a,d不能同时取
(3)a,e,f中必须有两样
(4)b,c要么都选,要么都不选
(5)c,d两样中选一样
(6)若d不选,则e也不选。
请各位大虾帮帮忙,我写出来的程序是这样的:
#include <stdio.h>
void main()
{
    int a,b,c,d,e,f,t;
    for (a=0;a<=1;a++)
    for (b=0;b<=1;b++)
    for (c=0;c<=1;c++)
    for (d=0;d<=1;d++)
    for (e=0;e<=1;e++)
    for (f=0;f<=1;f++)
    {t=((a||b)&&(a&&d)&&(a&&e&&f)&&(b&&c)||!(b||c)&&(!d||e));
   
        printf ("%d %d %d %d %d %d\n",a,b,c,d,e,f);
    }

}

运行结果不正确,请高手赐教。
搜索更多相关主题的帖子: 逻辑 指导 
2010-06-14 19:55
Sheldon
Rank: 1
等 级:新手上路
帖 子:21
专家分:8
注 册:2010-6-2
收藏
得分:2 
#include <stdio.h>
void main(){
int A,B,C,D,E,F;
    for(A=0;A<=1;A++)
    for(B=0;B<=1;B++)
    for(C=0;C<=1;C++)
    for(D=0;D<=1;D++)
    for(E=0;E<=1;E++)
    for(F=0;F<=1;F++){
    if((A||B)&&(A!=D)&&((A&&E||F)&&(A||E&&F)&&(A&&F||E))&&(B==C)&&(C!=D)&&(D==E))
    printf("A:%s B:%s C:%s D:%s E:%s F:%s\n",A?"选":"不选" ,B?"选":"不选",C?"选":"不选",D?"选":"不选",E?"选":"不选",F?"选":"不选");
}
}

[ 本帖最后由 Sheldon 于 2010-6-14 20:40 编辑 ]
2010-06-14 20:17
Sheldon
Rank: 1
等 级:新手上路
帖 子:21
专家分:8
注 册:2010-6-2
收藏
得分:3 
按LZ的话方式的话可改成
#include <stdio.h>
void main(){
int A,B,C,D,E,F,t=0;
    for(A=0;A<=1;A++)
    for(B=0;B<=1;B++)
    for(C=0;C<=1;C++)
    for(D=0;D<=1;D++)
    for(E=0;E<=1;E++)
    for(F=0;F<=1;F++){
    t=((A||B)&&(A!=D)&&((A&&E||F)&&(A||E&&F)&&(A&&F||E))&&(B==C)&&(C!=D)&&(D==E));
    if(t==1)
        printf("%d %d %d %d %d %d",A,B,C,D,E,F);
}
}

[ 本帖最后由 Sheldon 于 2010-6-14 20:41 编辑 ]
2010-06-14 20:21
快速回复:一道逻辑题,请高手指导
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028783 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved