难倒名牌大学生的题!你试试
1.四人中的一人做了好事,不留名,校长问是谁做的:A说:不是我
B说:是C
C说:是D
D说:C说谎
三人说的是真话,一人说假话。编一程序找出做好事的人
2.某地刑侦大队涉及六个嫌疑人的一桩疑案惊醒分析:
A、B至少有一人作案
A、E、F三人中至少有两人参与作案
A、D不可能是同案犯
B、C或同时作案,或与本案无关
C、D中有且仅有一人做案
如果D没有参与作案,则E也不可能参与作案
编一程序,将作案人找出
用C或是C++都可以
那小的就不客气了! #include <stdio.h> struct person { char ch; bool s; int n; }; main() { int i; person all[4]={{'A',1,0},{'B',1,3},{'C',1,4},{'D',1,3}};
if(all[1].n==1||all[1].n==0) if(all[2].n==1||all[2].n==0) if(all[3].n==1||all[3].n==0) all[0].s=0;
if(all[0].n==2||all[0].n==0) if(all[2].n==2||all[2].n==0) if(all[3].n==2||all[3].n==0) all[1].s=0; if(all[1].n==3||all[1].n==0) if(all[0].n==3||all[0].n==0) if(all[3].n==3||all[3].n==0) all[2].s=0; if(all[1].n==4||all[1].n==0) if(all[2].n==4||all[2].n==0) if(all[0].n==4||all[0].n==0) all[3].s=0; for(i=0;i<4;i++) if(all[i].s==0) printf("说假话的是%c\n",all[i].ch); }