C语言编程(爱编程的学士进)

来源:百度知道 编辑:UC知道 时间:2024/06/04 09:05:10
求具体代码,谢谢啦
A说:不是我;
B说:是C;
C说:是D;
D说:他胡说;
已知3个人说的是真话,一个人说假话,现在根据这些信息找出这个人
还有简单点的方法吗?

/*0代表有罪,1代表无罪,最后结果是c*/
#include<stdio.h>
int a,b,c,d;
a1(int i)
{if(i==1)
a=1;
else
a=0;
}

b1(int i)
{if(i==1)
c=0;
else
c=1;
}

c1(int i)
{if(i==1)
d=0;
else
d=1;
}

d1(int i)
{if(i==1)
d=1;
else
d=0;
}

main()
{int i,x[4];
for(i=0;i<4;i++)
{a=b=c=d=1;
x[0]=x[1]=x[2]=x[3]=1;
x[i]=0;
a1(x[0]);
b1(x[1]);
c1(x[2]);
d1(x[3]);
if(a+b+c+d==3)
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
}
getch();
}

C说假话

C

C说的是假的

#include "stdafx.h"

bool gInt[4][4] = {
{0, 1, 1, 1},
{1, 0, 1, 1},
{1, 1, 0, 1},
{1, 1, 1, 0}
};

int main(int argc, char* argv[])
{
bool A, B, C, D;
int n = 0;
for (int i=0; i<4; i++)
{