【EX03】谁打破了玻璃?用C++编写程序,加上算法说明
妈妈外出,回来后发现厨房窗户的玻璃被打破了。她问四个女儿,得到以下的回答A:“我没有打破。”B:“是我打破的。”C:“A没打破。”D:“B没打破。”嫌犯就在四个女儿中,打...
妈妈外出,回来后发现厨房窗户的玻璃被打破了。 她问四个女儿,得到以下的回答 A:“我没有打破。” B:“是我打破的。” C:“A没打破。” D:“B没打破。” 嫌犯就在四个女儿中,打破玻璃的人一定在撒谎,玻璃到底是谁打破的呢?试编程求解之。
展开
1个回答
2013-04-30
展开全部
/*用枚举尝试法,将四人分组,A=1,B=2,C=3,D=4,有一人说谎,其它三人加起来为3则A: x!=1;B:x==2;C:x!=1;D:x!=2;代码如下运行结果是B打碎了玻璃,不知道和你答案一样不,而且结果不唯一,C也是成立的*/#include<stdio.h>int main(){
int x;
for(x=1;x<=4;x++)
if((2*(int(x!=1))+int(x==2)+int(x!=2))==3)
{
printf("%c 打碎了玻璃\n",(x+'A'-1));
break;
}
return 0;
}
int x;
for(x=1;x<=4;x++)
if((2*(int(x!=1))+int(x==2)+int(x!=2))==3)
{
printf("%c 打碎了玻璃\n",(x+'A'-1));
break;
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询