約瑟夫坎貝爾有聲書

第五人格貝拉夫人和約瑟夫有關(guān)系嗎?
1個(gè)回答2024-03-04 12:37
他們之間有一點(diǎn)點(diǎn)的關(guān)系,但關(guān)系不是很重要,也不是很親密。
約瑟夫·坎貝爾的理論是如何變得如此受歡迎的?
3個(gè)回答2023-08-07 15:26
因?yàn)樗睦碚撌欠浅;A(chǔ)的,而且讓更多的人非常容易明白,所以非常受歡迎。
約瑟夫.貝爾的生平
1個(gè)回答2024-01-16 22:27
福爾摩斯的原型 19世紀(jì)中后期,蘇格蘭愛丁堡大學(xué)醫(yī)學(xué)部有位講師兼外科醫(yī)生,名叫約瑟夫·貝爾。平時(shí),他在學(xué)校里認(rèn)真教課,很少有人會(huì)想到,他還是一個(gè)私人偵探!他的傳奇故事給柯南·道爾帶來(lái)靈感,使其創(chuàng)作出“福爾摩斯”這一世界文學(xué)史上的經(jīng)典形象。 本世紀(jì)初的一天夜晚,十幾個(gè)客人周末在蘇格蘭打獵后,圍著餐桌坐下,討論一些未破獲的著名罪案。其中一位客人約瑟·貝爾醫(yī)生暢談他的演繹偵探術(shù),語(yǔ)驚四座。這位著名外科醫(yī)生的神奇推論,影響了作家柯南·道爾,羅勃·路易·斯蒂文生,與戲劇家詹姆斯·巴里。 “一般人都會(huì)看,卻不會(huì)觀察,”他說(shuō)“其實(shí)只要一瞥,就可以從一個(gè)人的臉上看出他的國(guó)籍,從手上看出他的行業(yè);其余一切,也可以從他的步伐、舉止、表鏈裝飾物、以及粘在衣服上的線頭看出來(lái)。 一位病人走進(jìn)屋里來(lái),我正在那里教幾個(gè)醫(yī)科學(xué)生。諸位,我說(shuō):“這位先生在蘇格蘭高地部隊(duì)當(dāng)過(guò)兵,大概是一個(gè)軍樂(lè)隊(duì)隊(duì)員?!蔽抑赋鏊呗反髶u大擺的樣子,象是蘇格蘭高地部隊(duì)的風(fēng)笛手;他身材矮小,如果當(dāng)過(guò)兵,大概是做軍樂(lè)隊(duì)員??墒撬麍?jiān)持說(shuō)自己是鞋匠,從未入伍。 “我請(qǐng)他脫下襯衫,看到他皮膚上烙有一個(gè)藍(lán)色的小小的‘D’字。在克里米亞戰(zhàn)爭(zhēng)時(shí),逃兵照例都烙上這個(gè)標(biāo)記。他終于承認(rèn)在高地部隊(duì)當(dāng)過(guò)樂(lè)隊(duì)隊(duì)員。簡(jiǎn)單得很?!?有一個(gè)人聽了說(shuō):“貝爾醫(yī)生幾乎可以做福爾摩斯?!必悹栣t(yī)生立即叫道:“親愛的先生,我就是福爾摩斯。” 柯南·道爾在自傳里承認(rèn),的確是從貝爾醫(yī)生那里得到靈感,寫出小說(shuō)中那位不朽的大偵探。 福爾摩斯的演繹與分析法則都是貝爾醫(yī)生在實(shí)際生活中常常講起的?!拔乙幌蚪虒W(xué)生注意觀人于微的重要性,瑣碎事物里所含的意義無(wú)窮,”貝爾醫(yī)生有一次對(duì)一位新聞?dòng)浾哒f(shuō),“無(wú)論做那一種手工藝,幾乎都會(huì)在手上留下記號(hào)。礦工手上的疤痕和石匠的不同。木匠手上的胼胝和泥水匠的又不一樣。軍人的走路姿態(tài)和水手有分別。特別是婦女,善于觀察的醫(yī)生往往可以準(zhǔn)確地猜出她身體哪一部分有病?!必悹栣t(yī)生相信醫(yī)生和偵探都必須培養(yǎng)觀察力,又說(shuō)任何人發(fā)展了這種能力都可以使生活豐富有趣。他去世后,他的妹妹斯提士德夫人回憶說(shuō):“一家人坐火車出去旅行,他便會(huì)告訴我們車上的其他乘客從什么地方來(lái),到什么地方去,以及他們的職業(yè)和習(xí)慣。他不必跟他們談話,就什么都知道。后來(lái)他證實(shí)果然觀察無(wú)誤,我們都認(rèn)為他是個(gè)魔術(shù)師。” 一天下午,貝爾醫(yī)生在皇家醫(yī)院里辦公,忽然有人敲門。“進(jìn)來(lái),”他說(shuō),一個(gè)人進(jìn)來(lái)了。貝爾醫(yī)生瞪著眼睛看他?!澳銥槭裁礋??” “你怎么知道我煩惱?” “敲門時(shí)連敲四下。普通人敲兩下就夠了,頂多三下?!?那個(gè)人確有煩惱。 道爾有一次對(duì)訪問(wèn)他的人說(shuō):“貝爾醫(yī)生坐在他的會(huì)客室里,喜歡在病人開口之前先作一番診斷。說(shuō)出他們的病癥,甚至道出他們過(guò)去生活中的瑣節(jié)。幾乎百不失一?!?貝爾醫(yī)生每天對(duì)學(xué)生作事實(shí)證明,觀察力不是魔術(shù),是科學(xué)。在皇家醫(yī)院里,有一個(gè)人走進(jìn)來(lái),他一看就說(shuō):“是個(gè)鞋匠?!焙髞?lái)他對(duì)學(xué)生解釋說(shuō):“他的褲子膝部?jī)?nèi)側(cè)磨損,是鞋匠獨(dú)有的特征。那是他們放鞋砧的地方。” 道爾年輕時(shí),是貝爾醫(yī)生的學(xué)生助教。一次,有個(gè)病人進(jìn)來(lái)了。貝爾醫(yī)生問(wèn)道:“你今天從南城來(lái),穿過(guò)高爾夫球場(chǎng),一路散步,很快活吧?”病人說(shuō):“咦,你看見我了嗎?”貝爾醫(yī)生并未看見他,但是解釋說(shuō):“今天下了一場(chǎng)暴雨,所以高爾夫球場(chǎng)的紅泥粘在靴子上了。別處是沒(méi)有這種泥土的?!?道爾曾在自傳里提到過(guò)貝爾醫(yī)生觀察入微的一個(gè)例子。這位醫(yī)生默默地對(duì)一位門診病人看了一會(huì),說(shuō)道:“你從前在陸軍服役,隸屬蘇格蘭高地部隊(duì),不久前才退役。” “是的?!?“是士官階級(jí),駐扎在巴貝多斯?” “是的?!?貝爾醫(yī)生轉(zhuǎn)過(guò)面來(lái)對(duì)他的學(xué)生說(shuō):“你們看出了吧,他是位有禮貌的人,但并不脫帽。陸軍是不脫帽的,如果退役已久,應(yīng)該已經(jīng)學(xué)會(huì)了平民的習(xí)慣。他氣概威嚴(yán),又顯然是蘇格蘭人。至于巴貝多斯,他患的是象皮病,這就證明他駐在西印度群島?!比舾赡旰?,道爾對(duì)這件事印象猶新,曾在福爾摩斯偵探小說(shuō)《希臘通譯》里做詳盡的復(fù)述。 道爾一八八一年畢業(yè)于愛丁堡大學(xué)。掛起眼科醫(yī)生招牌。轉(zhuǎn)眼六年,仍然門可羅雀。因急于增加收入,改行寫作。開始不甚得法,后來(lái)受了法國(guó)小說(shuō)家加波儒與愛倫坡的影響,決心試寫偵探小說(shuō)。他要寫出個(gè)不落前人窠臼的偵探。 “我想起了我的老師貝爾,”道爾在自傳里回憶說(shuō),“如果他做偵探,一定會(huì)把這有趣味而沒(méi)有組織的行當(dāng)改造成近于嚴(yán)密科學(xué)的事業(yè)。我越想越發(fā)生興趣。我該給這個(gè)人物取個(gè)什么名字呢?” 他想到英國(guó)板球家和另一位著名美國(guó)作家,都叫福爾摩斯,便替他的偵探取名為歇洛克·福爾摩斯。一八八七年第一部福爾摩斯小說(shuō)《壁頓的圣誕年鑒》出版,并未立即轟動(dòng)。但卻引起了一位美國(guó)編輯的注意,于兩年后向他定購(gòu)更多的福爾摩斯小說(shuō),從此這位偵探就成了文學(xué)上不朽的人物。 道爾文筆生動(dòng),每一部福爾摩斯小說(shuō)都引起歐美無(wú)數(shù)熱心讀者的討論。在《諾烏建筑師傳奇》里,一個(gè)近似瘋狂的年輕人闖進(jìn)了福爾摩斯貝克街的寓所,聲稱他名叫約翰·馬克法蘭,福爾摩斯懶洋洋地回答說(shuō):“你這樣宣布姓名,好象我應(yīng)該久仰大名似的,其實(shí)我對(duì)你所知有限,只知道你還沒(méi)有結(jié)婚,是位律師,也是互助會(huì)的會(huì)員,有哮喘病?!?貝爾醫(yī)生并不是永遠(yuǎn)沒(méi)錯(cuò)的。但他有幽默感。每逢訪客請(qǐng)他講述他的演繹奇談,他最喜歡說(shuō)他診視一位臥床病人的故事?!澳悴皇且粋€(gè)軍樂(lè)隊(duì)隊(duì)員嗎?”貝爾醫(yī)生俯身對(duì)病人發(fā)問(wèn)?!笆堑模辈∪苏f(shuō)。貝爾醫(yī)生很神氣地轉(zhuǎn)身對(duì)學(xué)生說(shuō):“諸位,你們看出來(lái)了吧,非常簡(jiǎn)單。他臉上筋肉癱瘓,是吹奏樂(lè)器過(guò)度所致。只要問(wèn)他一聲即可證實(shí)。你奏弄什么樂(lè)器?” 病人用肘撐起身體說(shuō):“醫(yī)生,我打大鼓!” [編輯本段]醫(yī)學(xué)教師竟是斷案高手 蘇格蘭愛丁堡大學(xué)醫(yī)學(xué)部有位講師兼外科醫(yī)生,名叫約瑟夫·貝爾。平時(shí),他在學(xué)校里認(rèn)真教課,很少有人會(huì)想到,他還是一個(gè)私人偵探! 一次,貝爾正在上課,一個(gè)中年男子闖進(jìn)來(lái),要求貝爾給他看病。貝爾問(wèn):“您是不是剛剛穿過(guò)教室西 面的那片草地?”男子吃驚地承認(rèn)了:“您怎么知道?”貝爾回答:“您腳下有紅色的泥土。整個(gè)愛丁堡只有那片草地上有這種黏土?!苯又悹栕寣W(xué)生們判斷該男子得了什么病。學(xué)生們七嘴八舌,但沒(méi)有一個(gè)答案讓貝爾滿意。最后,他告訴學(xué)生:“這人的毛病在于酗酒。你們看,他有酒糟鼻、血紅色的臉膛,這都是長(zhǎng)期飲酒的癥狀。最重要的是——他的右口袋鼓鼓的,里面肯定是一瓶酒!”說(shuō)著,貝爾從那人的右口袋里拿出一瓶威士忌來(lái)!學(xué)生們目瞪口呆。 一天,一個(gè)渾身都是刀傷的女子死在醫(yī)院里。警方請(qǐng)貝爾對(duì)尸體進(jìn)行解剖,貝爾在尸體檢驗(yàn)報(bào)告中以嚴(yán)密的邏輯和充分的科學(xué)證據(jù)證明:該女子死于傷口感染。警方為此啟動(dòng)了謀殺案調(diào)查程序。這在犯罪學(xué)上是一個(gè)創(chuàng)舉——此后,法醫(yī)的尸檢報(bào)告能夠使警方認(rèn)定一樁謀殺案,并啟動(dòng)相應(yīng)的調(diào)查程序。 貝爾的名聲漸漸傳開,警方經(jīng)常邀請(qǐng)他協(xié)助查案。 [編輯本段]破獲“香垂?fàn)栔\殺案” 1878年的“香垂?fàn)栔\殺案”是英國(guó)犯罪史上最著名的案件之一。 香垂?fàn)柺怯?guó)名流。1878年初,他向警方報(bào)案,稱妻子因煤氣中毒而生命垂危。貝爾和警員聞?dòng)嵑罅⒓蹿s到現(xiàn)場(chǎng)。警方調(diào)查了一圈,沒(méi)有發(fā)現(xiàn)任何異常。正當(dāng)他們打算以“意外事故”了結(jié)這起案件時(shí),貝爾大叫:“等一下!”只見他先把鼻子湊到死者口邊,仔細(xì)聞了聞;然后從死者床上拿起一片沾滿嘔吐物的枕巾,也聞了聞。隨后,他一言不發(fā),把枕巾疊起來(lái)拿走。此時(shí),香垂?fàn)栂壬哪樕下冻鲆唤z驚恐的神情。 原來(lái),當(dāng)貝爾看到枕巾上的嘔吐物時(shí),就覺(jué)得事有蹊蹺:嘔吐并不是煤氣中毒的癥狀。而且,煤氣中毒者的口中會(huì)散發(fā)出難聞的惡臭,可香垂?fàn)柗蛉丝谥胁](méi)有這種氣味。貝爾判斷:香垂?fàn)柗蛉耸欠螟f片致死的。 經(jīng)調(diào)查,香垂?fàn)栂壬谄浞蛉怂狼埃I過(guò)30份鴉片。實(shí)驗(yàn)室檢測(cè)出那塊枕巾上面的嘔吐物中有鴉片的成分。幾天后,香垂?fàn)栂壬痪酱丁?[編輯本段]“福爾摩斯”誕生 1877年,貝爾的班里來(lái)了一個(gè)學(xué)生,叫柯南·道爾。貝爾把這個(gè)學(xué)生選為自己的書記員,讓他跟隨自己解剖尸體、偵察案件。年僅17歲的柯南·道爾開始仔細(xì)觀察老師。 畢業(yè)后,柯南·道爾開了一家小診所,但生意不佳。他只能靠給雜志社寫小說(shuō)來(lái)賺稿費(fèi)。在創(chuàng)作過(guò)程中,他把貝爾變作了筆下的“福爾摩斯”。1887年11月,以福爾摩斯為主角的第一部小說(shuō)——《血字的研究》出版后,受到讀者的廣泛好評(píng)。 就在“福爾摩斯”系列小說(shuō)風(fēng)靡歐洲之際,倫敦發(fā)生了歷史上最血腥、最恐怖的連環(huán)兇殺案——“開膛手杰克”案,妓女一個(gè)接一個(gè)地遇害。全英國(guó)都呼喚“福爾摩斯”能在現(xiàn)實(shí)世界中出現(xiàn)。 案發(fā)后不久,英國(guó)警方就將相關(guān)資料寄給了貝爾。警方在資料中列出了三大嫌疑犯:1、杜立德,私立學(xué)校老師;2、約翰,波蘭裔猶太人,住在兇案現(xiàn)場(chǎng)附近;3、塔布萊特,經(jīng)常假扮醫(yī)生行騙。 貝爾看完資料后不久,把自己認(rèn)定的嫌疑犯的名字寫在一份文件里交給了警方。此后不久,頭號(hào)嫌疑犯杜立德神秘地自殺,連環(huán)兇殺案也告一段落。很多人認(rèn)為,貝爾指控杜立德是兇手,并將消息透露給他,迫使他自殺。 貝爾一生偵破了許多重大案件,但每次破案后,他總是默默地躲在角落里,從不張揚(yáng)——這一特點(diǎn)也是福爾摩斯所具有的。 貝爾在講臺(tái)上一直干到64歲才退休。1911年,這位現(xiàn)代刑事鑒定學(xué)的奠基人在家中默默地去世。
約瑟夫.貝爾的生平
1個(gè)回答2023-11-26 19:16
  19世紀(jì)中后期,蘇格蘭愛丁堡大學(xué)醫(yī)學(xué)部有位講師兼外科醫(yī)生,名叫約瑟夫·貝爾。平時(shí),他在學(xué)校里認(rèn)真教課,很少有人會(huì)想到,他還是一個(gè)私人偵探!他的傳奇故事給柯南·道爾帶來(lái)靈感,使其創(chuàng)作出“福爾摩斯”這一世界文學(xué)史上的經(jīng)典形象。   1877年,貝爾的班里來(lái)了一個(gè)學(xué)生,叫柯南·道爾。貝爾把這個(gè)學(xué)生選為自己的書記員,讓他跟隨自己解剖尸體、偵察案件。年僅17歲的柯南·道爾開始仔細(xì)觀察老師。   畢業(yè)后,柯南·道爾開了一家小診所,但生意不佳。他只能靠給雜志社寫小說(shuō)來(lái)賺稿費(fèi)。在創(chuàng)作過(guò)程中,他把貝爾變作了筆下的“福爾摩斯”。1887年11月,以福爾摩斯為主角的第一部小說(shuō)——《血字的研究》出版后,受到讀者的廣泛好評(píng)。   就在“福爾摩斯”系列小說(shuō)風(fēng)靡歐洲之際,倫敦發(fā)生了歷史上最血腥、最恐怖的連環(huán)兇殺案——“開膛手杰克”案,妓女一個(gè)接一個(gè)地遇害。全英國(guó)都呼喚“福爾摩斯”能在現(xiàn)實(shí)世界中出現(xiàn)。   案發(fā)后不久,英國(guó)警方就將相關(guān)資料寄給了貝爾。警方在資料中列出了三大嫌疑犯:1、杜立德,私立學(xué)校老師;2、約翰,波蘭裔猶太人,住在兇案現(xiàn)場(chǎng)附近;3、塔布萊特,經(jīng)常假扮醫(yī)生行騙。   貝爾看完資料后不久,把自己認(rèn)定的嫌疑犯的名字寫在一份文件里交給了警方。此后不久,頭號(hào)嫌疑犯杜立德神秘地自殺,連環(huán)兇殺案也告一段落。很多人認(rèn)為,貝爾指控杜立德是兇手,并將消息透露給他,迫使他自殺。   貝爾一生偵破了許多重大案件,但每次破案后,他總是默默地躲在角落里,從不張揚(yáng)——這一特點(diǎn)也是福爾摩斯所具有的。   貝爾在講臺(tái)上一直干到64歲才退休。1911年,這位現(xiàn)代刑事鑒定學(xué)的奠基人在家中默默地去世。
約瑟夫的簡(jiǎn)介
1個(gè)回答2024-02-09 12:35

公元37生于耶路撒冷,公元100年卒于羅馬。約瑟夫是羅馬帝國(guó)時(shí)期以為僧侶出身的猶太歷史學(xué)家,也是一位猶太法利賽教徒(Pharisee)。
約公元64年游歷羅馬,在公元66年猶太起義前夕返回耶路撒冷。被俘后,他預(yù)言韋帕薌將取得帝位,隨即得到赦免。
公元70年耶路撒冷陷落后,他在羅馬定居并獲得羅馬公民權(quán)、一座房舍和養(yǎng)老金。
約瑟夫著有七卷本的《猶太戰(zhàn)爭(zhēng)》(Bellum Iudaicum),最初以阿剌美語(yǔ)(Aramaic)寫成,其他作品均以希臘語(yǔ)寫成,其中包括《猶太古史》(Antiquitates Iudaicae)——從創(chuàng)世到公元66年的猶太歷史,約公元94年以20卷本刊布。他的《自傳》(Vita)是對(duì)猶太起義由他發(fā)起和組織的說(shuō)法的回復(fù)。

約瑟夫問(wèn)題:
1個(gè)回答2024-03-18 17:56
約瑟夫環(huán):
約瑟夫環(huán)問(wèn)題的一種描述是:編號(hào)為1.2.3…….n的n個(gè)人按順時(shí)針?lè)较驀蝗?

,每人手持一個(gè)密碼(正整數(shù)),開始任意選一個(gè)整數(shù)作為報(bào)數(shù)上限值,從第一

個(gè)人開始順時(shí)針自1開始順序報(bào)數(shù),報(bào)到m時(shí)停止報(bào)數(shù)。報(bào)m的人出列,將他的密

碼作為新的m值,從他順時(shí)針下一個(gè)人開始重新從1開始報(bào)數(shù),如此下去直到所有

的人全部都出列為止。試設(shè)計(jì)程序?qū)崿F(xiàn)。
要求:利用循環(huán)鏈表存儲(chǔ)結(jié)構(gòu)模擬此過(guò)程,按照出列的順序打印各人的編號(hào)。
測(cè)試數(shù)據(jù):m的值初始為20:密碼3 ,1,7,2,4,8,4。
正確的結(jié)果:6,1,4,7,2,3,5。
提示:程序運(yùn)行后首先要求用戶指定初始報(bào)數(shù)上限。然后讀取各人的密碼。設(shè)

n<30。


typedef struct node
{
int num,code;
struct node *next;
}lnode;
void main()
{
int i,j,key,n; /*i,j為記數(shù)器,key為輸入的密碼,n為人的總個(gè)數(shù)*/
lnode *p,*s,*head;
head=(lnode *)malloc(sizeof(lnode)); /*為頭結(jié)點(diǎn)分配空間*/
p=head;
printf("Please enter the num of the person:"); /*輸入人的總個(gè)數(shù)*/
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("Person %d",i);
printf(" code: ");
scanf("%d",&key); /*輸入各個(gè)人的密碼*/
s=p;
p=(lnode *)malloc(sizeof(lnode)); /*創(chuàng)建新的結(jié)點(diǎn)*/
s->next=p;
p->num=i;
p->code=key;
}
p->next=head->next;
p=head;
head=head->next;
free(p);


p=head;
do
{
printf("\nPerson%d Code:%d",p->num,p->code); /*輸出鏈表*/
p=p->next;
}while(p!=head);




printf("\nPlease enter your first key:"); /*輸入第一個(gè)數(shù)*/
scanf("%d",&key);
do
{
j=1; /*j為記數(shù)數(shù)*/
p=head;
while(j{
s=p;
p=p->next;
j++;
}
i=p->num;
key=p->code;
printf("\nThe out of the num:");
printf("Person%d",i);
s->next=p->next;
head=p->next; /*重新定義head,下次循環(huán)的開始結(jié)點(diǎn)*/
free(p);
n--; /*每循環(huán)一次人是減1*/
}while(n>0);
getch();
}
約瑟夫問(wèn)題
1個(gè)回答2024-06-11 09:12

你的問(wèn)題是什么?若是編寫程序要說(shuō)明你要用的語(yǔ)言,以下是C的參考:

#include
#define N 30
int yuesefu1(int data[],int sum,int k)
{
? int i=0,j=0,count=0;
? while(count ? {
? ? if(data[i]!=0)/*當(dāng)前人在圈子里*/
? ? ? ? j++;
? ? if(j==k)/*若該人應(yīng)該退出圈子*/
? ? {
? ? ? ? data[i]=0;/*0表示不在圈子里*/
? ? ? ? count++;/*退出的人數(shù)加1*/
? ? ? ? j=0;/*重新數(shù)數(shù)*/
? ? }
? ? i++;/*判斷下一個(gè)人*/
? ? if(i==sum)/*圍成一圈*/
? ? ? ? i=0;
? }
? for(i=0;i ? ? ?if(data[i]!=0)
? ? ? ? ?return data[i];/*返回最后一個(gè)人的編號(hào)*/
}

int main()
{
? int data[N];
? int i,n,m;
? printf("請(qǐng)輸入總數(shù):\n");
? scanf("%d",&n);
? for(i=0;i ? ? data[i]=i+1;
? printf("請(qǐng)輸入報(bào)數(shù):\n");
? scanf("%d",&m);
? printf("最后的人為: %d\n",yuesefu1(data,n,m));
? return 0;
}


約瑟夫問(wèn)題
1個(gè)回答2024-07-01 22:43
#include
#include

struct node{
int data;
struct node *next;
};

int main(){
int i,j,k,m,n;
struct node *head,*p,*q;
scanf("%d%d",&n,&m);

p=(struct node*)malloc(sizeof(struct node));
p->data=1;p->next=p;
head=p;

for(i=2;i<=n;i++)
{
q=(struct node*)malloc(sizeof(struct node));
q->data=i;q->next=head;
p->next=q;
p=q;
}

k=1;p=head;
while(p->next!=p){
if(k+1==m){
p->next=p->next->next;
k=1;
p=p->next;
}else{
k++;
p=p->next;
}
}
printf("%d\n",p->data);
system("pause");
return 0;
}
約瑟夫問(wèn)題
1個(gè)回答2024-08-07 02:47
//約瑟夫環(huán):
//這并告?zhèn)€程序有點(diǎn)小問(wèn)題,你自己看看吧,現(xiàn)在沒(méi)時(shí)間改了,起始位置有點(diǎn)問(wèn)題

#include
#include
int flag;
typedef struct node
{int data;
struct node *next;
}LNode,* Linklist;
Linklist CreatFromHead() //鏈表的初始化
{ Linklist L=NULL,s;
LNode *r=NULL;
int x=1;
s=(Linklist)malloc(sizeof(LNode));
L = s;
r= L;

printf("請(qǐng)輸入請(qǐng)廳叢輸入報(bào)數(shù)的人數(shù)");
scanf_s("%d",&flag);
while(x!=flag+1)
{s=(Linklist)malloc(sizeof(LNode));
s->data=x;
r->next=s;
r=s;
x++;
}
s->next=L;

if(r!=NULL) r->next=NULL;
return L;
}
Linklist Getlist(Linklist L,int i) //鏈表的查找函數(shù)
{Linklist p;
int j;

p=L;j=0;
while(p->next!=NULL&&j { p=p->next;
j++;
}
if(i==j)return p;
else return NULL;
}
Linklist treat(Linklist L,Linklist s,int k,int i) //約瑟夫環(huán)算法
{
int j=0;
if(s==NULL)
{
s=L->扮蔽櫻next;
}
while(j {
s=s->next;
j++;
if(s==NULL)
{
s=L->next;
}
}
return s;
}
int Del_Linklist(Linklist L,Linklist p) //鏈表結(jié)點(diǎn)刪除函數(shù)
{Linklist s;
s=L;
while((s->next->data != p->data))
{
s=s->next;
}
s->next=s->next->next;
free(p);
return 1;
}
void main() //主函數(shù)
{Linklist L;
Linklist p,s;
int i,k,m,n;
L=CreatFromHead();
printf("請(qǐng)輸入查找的元素位置");
scanf_s("%d",&i);
printf("請(qǐng)輸入相隔的位置:");
scanf_s("%d",&k);
m=0;

s=Getlist(L,i);
printf(".");

while(m{
p=treat(L,s,k,i);

printf("%d\t",p->data);
s=p->next;

n=Del_Linklist(L,p);
m++;
}
}
約瑟夫問(wèn)題
1個(gè)回答2024-07-02 17:23
約瑟夫環(huán):

約瑟夫環(huán)問(wèn)題的一種描述是:編號(hào)為1.2.3…….n的n個(gè)人按順時(shí)針?lè)较驀蝗?br>


,每人手持一個(gè)密碼(正整數(shù)),開始任意選一個(gè)整數(shù)作為報(bào)數(shù)上限值,從第一



個(gè)人開始順時(shí)針自1開始順序報(bào)數(shù),報(bào)到m時(shí)停止報(bào)數(shù)。報(bào)m的人出列,將他的密



碼作為新的m值,從他順時(shí)針下一個(gè)人開始重新從1開始報(bào)數(shù),如此下去直到所有



的人全部都出列為止。試設(shè)計(jì)程序?qū)崿F(xiàn)。

要求:利用循環(huán)鏈表存儲(chǔ)結(jié)構(gòu)模擬此過(guò)程,按照出列的順序打印各人的編號(hào)。

測(cè)試數(shù)據(jù):m的值初始為20:密碼3,1,7,2,4,8,4。

正確的結(jié)果:6,1,4,7,2,3,5。

提示:程序運(yùn)行后首先要求用戶指定初始報(bào)數(shù)上限。然后讀取各人的密碼。設(shè)



n<30。





typedefstructnode

{

intnum,code;

structnode*next;

}lnode;

voidmain()

{

inti,j,key,n;/*i,j為記數(shù)器,key為輸入的密碼,n為人的總個(gè)數(shù)*/

lnode*p,*s,*head;

head=(lnode*)malloc(sizeof(lnode));/*為頭結(jié)點(diǎn)分配空間*/

p=head;

printf("Pleaseenterthenumoftheperson:");/*輸入人的總個(gè)數(shù)*/

scanf("%d",&n);

for(i=1;i<=n;i++)

{

printf("Person%d",i);

printf("code:");

scanf("%d",&key);/*輸入各個(gè)人的密碼*/

s=p;

p=(lnode*)malloc(sizeof(lnode));/*創(chuàng)建新的結(jié)點(diǎn)*/

s->next=p;

p->num=i;

p->code=key;

}

p->next=head->next;

p=head;

head=head->next;

free(p);





p=head;

do

{

printf("
Person%dCode:%d",p->num,p->code);/*輸出鏈表*/

p=p->next;

}while(p!=head);









printf("
Pleaseenteryourfirstkey:");/*輸入第一個(gè)數(shù)*/

scanf("%d",&key);

do

{

j=1;/*j為記數(shù)數(shù)*/

p=head;

while(j
{

s=p;

p=p->next;

j++;

}

i=p->num;

key=p->code;

printf("
Theoutofthenum:");

printf("Person%d",i);

s->next=p->next;

head=p->next;/*重新定義head,下次循環(huán)的開始結(jié)點(diǎn)*/

free(p);

n--;/*每循環(huán)一次人是減1*/

}while(n>0);

getch();

}
熱門問(wèn)答