原题如下:一个超难的脑筋急转弯,张三说李四说慌,李四说王五说慌,王五说张三和李四都在说谎,问究竟谁在说谎,谁没说谎?
==
/*说谎.c 说谎*/
#include<stdio.h>
int main()
{
int a,b,c;
for(a=0;a<=1;a++)
for(b=0;b<=1;b++)
for(c=0;c<=1;c++)
if((a&&!b||!a&&b)&&(b&&!c||!b&&c)&&(c&&a+b==0||!c&&a+b!=0))
{
printf("张三说了%s.\n",a?"真话":"假话");
printf("李四说了%s.\n",b?"真话":"假话");
printf("王五说了%s.\n",c?"真话":"假话");
}
}
===
其中下面这一段
(c&&a+b==0||!c&&a+b!=0)
不理解,谁能帮忙解释下?