一个有趣的c语言题目 希望高手可以给个答案 不甚感激

张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。现在问:这三人中到底谁说的是真话,谁说的是假话?

前两个条件可以作为三者关系,最后一个条件作为判断
前面两个关系明显表示是非的关系,张三如果是真话,李四就是假话,张三是假话,李四就是真话
lisi = !zhangsan
wangwu = !lisi
然后再最后用个if判断最后是否成立
!zhangsan && !lisi == wangwu

最后给张三赋值1和0,看是否满足判断条件,该题如果张三是1(真话) 那么李四就是0,王五就是1,那么最后判断不成立。张三是0(假话),李四1,王五0。就满足条件了。追问

小弟愚钝 可否给个程序例子 不是我懒啊  是我还真写不出来 逻辑上理解不了啊 三两下我就有点晕啦

追答

#include "stdio.h"
int main()
{
int zhangsan,lisi,wangwu;
printf("猜测:张三说真话,输入1,张三说假话,输入0:");
scanf("%d",&zhangsan);
lisi=!zhangsan;
wangwu=!lisi;
if((!zhangsan && !lisi) == wangwu)
printf("猜测正确\n");
else
printf("猜测错误\n");
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-25
这怎么是C语言题目。。。追问

恩 是啊 呵呵

第2个回答  2011-10-26
相似回答