永发信息网

用c语言的if switch来完成 已经四个人 有一个做了好事的人 三个说真话的

答案:1  悬赏:80  手机版
解决时间 2021-01-05 17:52
  • 提问者网友:饥饿走向夜
  • 2021-01-05 12:01
用c语言的if switch来完成 已经四个人 有一个做了好事的人 三个说真话的
最佳答案
  • 五星知识达人网友:迷人又混蛋
  • 2021-01-05 13:13
char peo[4] = {};
int laird_index,find_index = -1;
for(int i = 1;i < 4;++i)
{
// A说,不是A B说,是D
// C说,是D D说, C说谎 可以把这句话理解为: 不是D;
laird_index = i;
switch (laird_index) //假设这个说谎的人 是 a - d; 说谎的人说的话,就不算数,被注释;
{
case 0://A说谎
{
//peo[0] +=1;
peo[3] +=1;
peo[3] +=1;
peo[3] -=1;
break;
}
case 1://b说谎
{
peo[0] -=1;
//peo[3] -=1;
peo[3] +=1;
peo[3] -=1;
break;
}
case 2://c说谎
{
peo[0] -=1;
peo[3] +=1;
//peo[3] +=1;
peo[3] -=1;
break;
}
case 3://d说谎
{
peo[0] -=1;
peo[3] +=1;
peo[3] +=1;
//peo[3] -=1;
break;
}
}
//验证下; 这个数组必定有 且仅有一个人 被 大于1个人所承认;
//并且 不关 bc的事,因为没有人承认过他们;
//所以 好人只能是 A、D之中产生;

if(peo[0]< 0 && peo[3] > 0)
{
find_index = 3;
break;
}
else if(peo[0] > 0 && peo[3] < 0)
{
find_index = 0;
break;
}
}
switch (find_index)
{
case -1:
cout<<"没有找到"<case 0:
cout<<"好人是A"<case 3:
cout<<"好人是D"<}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯