用c語言程序判斷誰是小偷


用c語言程序判斷誰是小偷
題目:
警察局抓了a,b,c,d四名偷竊嫌疑犯,當中只有一個是小偷,審問結果如下:
a說:“我不是小偷。”
b說:“c是小偷。”
c說:“小偷肯定是d。”
d說:“c在冤枉人。”
現在已經知道4個人中3人說的是真話,一個說的是假話,那么誰是小偷?

分析:
如果不用代碼,讓讀者硬做這題的話,思路往往是一個個假設過去,如假設a是小偷,然后判斷4個人的話是不是3真1假。
用程序判斷真假很簡單,但如何記錄真假的個數呢,這里用到一個技巧,就是“邏輯和”,利用C語言中,Ture為1,False為0來做。
這個算法實質上是模擬了人的思考方式。

 1 # include <stdio.h>
 2 /**
 3 警察局抓了a,b,c,d四名偷竊嫌疑犯,當中只有一個是小偷,審問結果如下:
 4 a說:“我不是小偷。”
 5 b說:“c是小偷。”
 6 c說:“小偷肯定是d。
 7 d說:“c在冤枉人。”
 8 現在已經知道4個人中3人說的是真話,一個說的是假話,那么誰是小偷?
 9 */
10 int main(void){
11     for(int x =1;x<=4;x++)
12     {
13         int y = (x!=1)+(x==3)+(x==4)+(x!=4);
14         if(y == 3){
15             //printf("%d 是小偷。",x);
16             printf("%c 是小偷。",64+x);//C 是小偷。Press any key to continue
17             break;
18         }
19     }
20     return 0;
21 }


輸出結果:
C 是小偷。Press any key to continue

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM