C語言猜兇手的代碼實現(xiàn)
題目:
日本某地發(fā)生了一件謀殺案,警察通過排查確定殺人兇手必為4個嫌疑犯的一個。
以下為4個嫌疑犯的供詞:
A說:不是我。
B說:是C。
C說:是D。
D說:C在胡說
已知3個人說了真話,1個人說的是假話。
現(xiàn)在請根據這些信息,寫一個程序來確定到底誰是兇手。
思路: 總體思路:
依次假設每個人是兇手進行判斷,看4人說的話是不是 1假3真,是則證明假設的該人就是兇手
定義變量:
char killer = 0; -- 兇手
因為 a b c d 的ASCII碼值是連著的,
所以有 a+1=b,以此類推,依次假定每個人是兇手,判斷情況
(使用 for循環(huán) 依次假定每個人是兇手)
把4句話,4個情況列出來,
情況 1假3真 ,真為 1 ,假為 0 ,
4種情況 “相加”==3 ,
(使用 if條件判斷語句 實現(xiàn))
即 當前假定的人就是兇手,進行打印
一步到位:
(1).定義變量:
char killer = 0; -- 兇手
(2).
因為 a b c d 的ASCII碼值是連著的,
所以有 a+1=b,以此類推,依次假定每個人是兇手,判斷情況
(使用 for循環(huán) 依次假定每個人是兇手)
(3).
把4句話,4個情況列出來,
情況 1假3真 ,真為 1 ,假為 0 ,
4種情況 “相加”==3 ,
(使用 if條件判斷語句 實現(xiàn))
即 當前假定的人就是兇手,進行打印
實現(xiàn)代碼
#include <stdio.h>
int main()
{
//定義變量:
char killer = 0; //兇手
//依次假定每個人是兇手:
for (killer = 'a'; killer <= 'd'; killer++)
//因為 a b c d 的ASCII碼值是連著的,所以a+1==b,
//以此類推,依次假定每個人是兇手,判斷情況
{
//把4個情況列出來:
if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
//把4句話,4個情況列出來,情況1假3真,真為1,假為0,4種情況“相加”==3,符合就是兇手進行打印
{
//符合則進行打印
printf("兇手是:%c\n", killer);
break;
}
}
return 0;
}實現(xiàn)圖片:
(注:for循環(huán)的判斷條件是 killer <= 'd')

最終代碼和實現(xiàn)效果
最終代碼
#include <stdio.h>
int main()
{
//定義變量:
char killer = 0; //兇手
//依次假定每個人是兇手:
for (killer = 'a'; killer <= 'd'; killer++)
//因為 a b c d 的ASCII碼值是連著的,所以a+1==b,
//以此類推,依次假定每個人是兇手,判斷情況
{
//把4個情況列出來:
if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
//把4句話,4個情況列出來,情況1假3真,真為1,假為0,4種情況“相加”==3,符合就是兇手進行打印
{
//符合則進行打印
printf("兇手是:%c\n", killer);
break;
}
}
return 0;
}實現(xiàn)效果:

到此這篇關于C語言猜兇手的代碼實現(xiàn)的文章就介紹到這了,更多相關C語言猜兇手內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C++數組模擬之單鏈表與雙鏈表和棧和隊列的實現(xiàn)過程
這篇文章主要介紹了C++數組模擬之單鏈表與雙鏈表和棧和隊列的實現(xiàn)過程,了解內部原理是為了幫助我們做擴展,同時也是驗證了一個人的學習能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會的,跟隨下文來具體了解吧2023-02-02

