四位同学(编号为1,2,3,4)在晚上宿舍过生日聚会,突然停电了5分钟。来电后,发现生日蛋糕被一个同学偷吃了一口。
同学1说:“不是我”;
同学2说:“是3吃的”;
同学3说:“是4吃的”;
同学4说:“3胡说”。
已知这四位同学有三位同学说真话,一位同学说假话,请用列举法编程解决该问题,并写出运行结果。
四位同学(编号为1,2,3,4)在晚上宿舍过生日聚会,突然停电了5分钟。来电后,发现生日蛋糕被一个同学偷吃了一口。
同学1说:“不是我”;
同学2说:“是3吃的”;
同学3说:“是4吃的”;
同学4说:“3胡说”。
已知这四位同学有三位同学说真话,一位同学说假话,请用列举法编程解决该问题,并写出运行结果。
收起
#include <stdio.h>
int main() {
char arr[] = { 'A', 'B', 'C', 'D' };//分别是偷吃者的四种情况 int i = 0;
for (int i = 0; i < 4; i++)//把四种情况遍历
{
if ((arr[i] != 'A') + (arr[i] == 'C') + (arr[i] == 'D') + (arr[i] != 'D') == 3)//如果三真一假
printf("偷吃的是%c\n",arr[i]);
}
return 0;
}
报告相同问题?