c语言编程:练习题2。

来源:百度知道 编辑:UC知道 时间:2024/06/01 01:05:32
上级派来新领导,司机去接站,站台上有4人,司机上前询问,A说是D,B说是A,C说不是我,D说A胡说。已知三人说真话,一人说假话。谁是新领导?
我要的是源程序,不是废话!请编程高手帮帮忙!

WOW...THIS IS FUNNY...
Result:
Come on! A! you are the leader!

顺便说一句,这个显然是没效率的。自己修改一下,不判断真的判断为3个,而判断假的判断大于一个。你修改一下函数了。反正这个简单也没有什么影响。我说的是习惯。
#include <stdio.h>
#define A 1
#define B 2
#define C 3
#define D 4

int selectLeader(int x)
{
int result = 0;

if (x == D)
++result;
if (x == A)
++result;
if (x != C)
++result;
if (x != D)
++result;

return result;
}

int main(void)
{
int i;
char P[5] = {[1] = 'A', 'B', 'C', 'D'};
_Bool foundHim = 0;

for (i = 0; (! foundHim) && i < 5; i++)
if (selectLeader(i) == 3){
printf("Come on! %c! you are the leader!\n", P[i]);