C語(yǔ)言猜兇手的代碼實(shí)現(xiàn)
題目:
日本某地發(fā)生了一件謀殺案,警察通過(guò)排查確定殺人兇手必為4個(gè)嫌疑犯的一個(gè)。
以下為4個(gè)嫌疑犯的供詞:
A說(shuō):不是我。
B說(shuō):是C。
C說(shuō):是D。
D說(shuō):C在胡說(shuō)
已知3個(gè)人說(shuō)了真話(huà),1個(gè)人說(shuō)的是假話(huà)。
現(xiàn)在請(qǐng)根據(jù)這些信息,寫(xiě)一個(gè)程序來(lái)確定到底誰(shuí)是兇手。
思路: 總體思路:
依次假設(shè)每個(gè)人是兇手進(jìn)行判斷,看4人說(shuō)的話(huà)是不是 1假3真,是則證明假設(shè)的該人就是兇手
定義變量:
char killer = 0; -- 兇手
因?yàn)?a b c d 的ASCII碼值是連著的,
所以有 a+1=b,以此類(lèi)推,依次假定每個(gè)人是兇手,判斷情況
(使用 for循環(huán) 依次假定每個(gè)人是兇手)
把4句話(huà),4個(gè)情況列出來(lái),
情況 1假3真 ,真為 1 ,假為 0 ,
4種情況 “相加”==3 ,
(使用 if條件判斷語(yǔ)句 實(shí)現(xiàn))
即 當(dāng)前假定的人就是兇手,進(jìn)行打印
一步到位:
(1).定義變量:
char killer = 0; -- 兇手
(2).
因?yàn)?a b c d 的ASCII碼值是連著的,
所以有 a+1=b,以此類(lèi)推,依次假定每個(gè)人是兇手,判斷情況
(使用 for循環(huán) 依次假定每個(gè)人是兇手)
(3).
把4句話(huà),4個(gè)情況列出來(lái),
情況 1假3真 ,真為 1 ,假為 0 ,
4種情況 “相加”==3 ,
(使用 if條件判斷語(yǔ)句 實(shí)現(xiàn))
即 當(dāng)前假定的人就是兇手,進(jìn)行打印
實(shí)現(xiàn)代碼
#include <stdio.h> int main() { //定義變量: char killer = 0; //兇手 //依次假定每個(gè)人是兇手: for (killer = 'a'; killer <= 'd'; killer++) //因?yàn)?a b c d 的ASCII碼值是連著的,所以a+1==b, //以此類(lèi)推,依次假定每個(gè)人是兇手,判斷情況 { //把4個(gè)情況列出來(lái): if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3) //把4句話(huà),4個(gè)情況列出來(lái),情況1假3真,真為1,假為0,4種情況“相加”==3,符合就是兇手進(jìn)行打印 { //符合則進(jìn)行打印 printf("兇手是:%c\n", killer); break; } } return 0; }
實(shí)現(xiàn)圖片:
(注:for循環(huán)的判斷條件是 killer <= 'd')
最終代碼和實(shí)現(xiàn)效果
最終代碼
#include <stdio.h> int main() { //定義變量: char killer = 0; //兇手 //依次假定每個(gè)人是兇手: for (killer = 'a'; killer <= 'd'; killer++) //因?yàn)?a b c d 的ASCII碼值是連著的,所以a+1==b, //以此類(lèi)推,依次假定每個(gè)人是兇手,判斷情況 { //把4個(gè)情況列出來(lái): if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3) //把4句話(huà),4個(gè)情況列出來(lái),情況1假3真,真為1,假為0,4種情況“相加”==3,符合就是兇手進(jìn)行打印 { //符合則進(jìn)行打印 printf("兇手是:%c\n", killer); break; } } return 0; }
實(shí)現(xiàn)效果:
到此這篇關(guān)于C語(yǔ)言猜兇手的代碼實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C語(yǔ)言猜兇手內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
stl容器set,map,vector之erase用法與返回值詳細(xì)解析
在使用 list、set 或 map遍歷刪除某些元素時(shí)可以這樣使用,如下所示2013-09-09C++實(shí)現(xiàn)LeetCode(133.克隆無(wú)向圖)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(133.克隆無(wú)向圖),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C語(yǔ)言實(shí)現(xiàn)排序算法之歸并排序詳解
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)排序算法之歸并排序,對(duì)歸并排序的原理及實(shí)現(xiàn)過(guò)程做了非常詳細(xì)的解讀,需要的朋友可以參考下2014-07-07C++快速調(diào)用DeepSeek API的完整指南
最近,DeepSeek的API引起了我的興趣,它提供了強(qiáng)大的對(duì)話(huà)生成能力,可以用于多種應(yīng)用場(chǎng)景,雖然DeepSeek官方提供了詳細(xì)的API文檔,但遺憾的是,目前沒(méi)有專(zhuān)門(mén)針對(duì)C++的調(diào)用示例,所以,本文給大家實(shí)現(xiàn)一個(gè)C++版本的調(diào)用示例,需要的朋友可以參考下2025-03-03