某地刑侦大队对涉及6个嫌疑人的一桩疑案进行分析


(1)A、B 至少有一人作案;
(2)A、E、F 三人中至少有两人参与作案;
(3)A、D 不可能是同案犯;
(4)B、C 或同时作案,或与本案无关;
(5)C、D 中有且仅有一人作案;
(6)如果 D 没有参与作案,则 E 也不可能参与作案。
  试编一程序,将作案人找出来。
一、向数字转换

1.分析

某地刑侦大队对涉及6个嫌疑人的一桩疑案进行分析_第1张图片

 2.代码

#include 
int 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>=1 && a+e+f>=2 && a+d<=1 && b==c && (c+d)==1 && d>=e){
								printf("%d %d %d %d %d %d \n",a,b,c,d,e,f);
							}
						}
					}
				}
			}
		}
	}
}

3.结果

 二、向逻辑转换

#include 
int main(){
	int a,b,c,d,e,f;
	int l1,l2,l3,l4,l5,l6;
	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++){
							l1=a||b;
							l2=a&&e||a&&f||e&&f;
							l3=(a&&d)==0;
							l4=b==c;
							l5=c!=d;
							l6=d||!e;
							if(l1+l2+l3+l4+l5+l6==6){
								printf("%d %d %d %d %d %d \n",a,b,c,d,e,f);
							}
						}
					}
				}
			}
		}
	}
}

运行结果同上。

你可能感兴趣的:(程序设计基础,c语言)