M只猴子選大王

2024-06-04 23:47

M只猴子選大王,方法:所有猴子按1……M編號(hào)圍成一圈,從第一個(gè)開始按順序1,2……N報(bào)數(shù),報(bào)到N的退出,如此循環(huán),直到最后一只,那只就是猴王。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)啊,用C做,急急急
1個(gè)回答
順便幫你把語句也解釋好算了

#include

#include

#define n 19

#define m 4



typedef struct monkey

{

int num;

struct monkey *next;

} Monkey,*LINK;





void main()

{

LINK p,head,p2;

int i;

head=p=p2=(LINK)malloc(sizeof(Monkey));//三個(gè)指針指向同一塊內(nèi)存



for(i=1;i
{

p=(LINK)malloc(sizeof(Monkey));

p2->next=p;

p2=p;

}



p2->next=head;//把鏈表的首尾相連

p=head;//p指向了第一個(gè)結(jié)點(diǎn)



printf("對(duì)猴子進(jìn)行編號(hào)!\n");

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

{

p->num=i;//從第一個(gè)結(jié)點(diǎn)到最后一個(gè)結(jié)點(diǎn)依次給猴子編號(hào)

printf("%d號(hào)猴子:%d\n",p->num,p->num);

p=p->next;

}//循環(huán)結(jié)束,p指向了最后一個(gè)結(jié)點(diǎn)



i=0;

p=head;//再把p指向第一個(gè)結(jié)點(diǎn)



while(1)

{

i++;

printf("%d號(hào)猴子報(bào):%d\n",p->num,i);

if(p->next==p)

break;//此為while循環(huán)的出口



if(i==m)//if語句中是刪除結(jié)點(diǎn)的過程

{

i=0;

printf("%d號(hào)猴被淘汰\n",p->num);

printf("\n");

p2->next=p->next;//在此刪除結(jié)點(diǎn)p

p=p2->next;//p指向它的下一個(gè)結(jié)點(diǎn)

continue;

}

else

{

if(i==m-1)

p2=p;//保存將要退出結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn)(存到p2中)

p=p->next;

}

}



printf("勝出:%d",p->num);//最后剩下的結(jié)點(diǎn)就是獲勝的結(jié)點(diǎn)



}



這個(gè)程序其實(shí)就是形成了一個(gè)有19個(gè)結(jié)點(diǎn)的循環(huán)鏈表,當(dāng)碰到m的時(shí)候,用這兩句話p2->next=head;p=head刪除當(dāng)前的結(jié)點(diǎn),然后再繼續(xù)判斷。
相關(guān)問答
如果對(duì)面選猴子,你會(huì)選什么讓他明白
1個(gè)回答2024-03-01 23:47
猴子的話,前面殺蹦他,怎么翻?屌絲鞋加窮鬼盾翻盤嗎?他人多你可以出電錘狂戰(zhàn)之類的,買寶石啊,粉啊,前期多抓一抓,死成狗了怎么起來。個(gè)人認(rèn)為還是賞金干他好一點(diǎn),主鏢,只要你前面不是太逆風(fēng),15分鐘想怎么...
全文
選猴王 故事怎么講
1個(gè)回答2024-01-18 09:47
國有一花果山,山頂有一塊仙石見風(fēng)化做石猴。有一日,眾猴見股澗水奔流,不知源頭何處,就說:“哪一名有本事的,鉆進(jìn)去尋個(gè)源頭,不傷身體者,就拜他為王?!蹦鞘锾M(jìn)去。見洞里無水,洞口有一口碣上寫“花果山福...
全文
猴子選大王是哪一類的題目??快!!!!
1個(gè)回答2024-02-14 03:12
實(shí)際是Josephus(約瑟夫)問題 [問題描述] M只猴子要選大王,選舉辦法如下:所有猴子按1…M編號(hào)圍坐一圈,從第1號(hào)開始按順序1,2,…,N報(bào)數(shù),凡報(bào)到N的猴子退出到圈外,如此循...
全文
【單選題】單選題-猴猴猴猴猴猴猴猴猴或或或或或或或或或或或或?-上傳了附件。
1個(gè)回答2024-01-17 18:50
正確答案-哈哈哈哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵或或或或或或或或或或或或;簡介...
全文
小動(dòng)物選猴子為森林之王英文
1個(gè)回答2024-02-14 19:48
The monkey king is the king of the forest. 小動(dòng)物選猴子為森林之王
M+2N-P=M+() m-2n+p=m-() m-2n-p=m-() m+2n+p=m-()
1個(gè)回答2022-12-16 16:37
M+2N-P=M+(2n-p) m-2n+p=m-(2n-p) m-2n-p=m-(2n+p) m+2n+p=m-(2n+p)
動(dòng)物園里有猴山,猴子山上鬧翻天,八只小猴抱成團(tuán),九只小猴叫得歡。打一動(dòng)物,三十六中動(dòng)物選一
1個(gè)回答2024-03-09 17:53
人。這是一種社會(huì)行為:動(dòng)物的社會(huì)行為,是維護(hù)組共存同種行為之間。并不是指一組動(dòng)物在一起的,但勞動(dòng)小組成員之間的分工,組合在一起,以維持生命
“m鹿m”是什么意思?
1個(gè)回答2022-07-05 21:28
“m鹿m”是藝人鹿晗的微博名。
孝猴選文講述了一個(gè)怎樣的故事
1個(gè)回答2024-02-26 17:46
孝猴選文講述了一個(gè)葉婆婆關(guān)愛猴子,猴子知恩感恩,兩者和諧相處的感人故事。 清朝末年,有個(gè)外鄉(xiāng)人流浪到四川巫山縣大寧河鎮(zhèn),他在鎮(zhèn)東柳林里搭個(gè)棚子,算作居室,靠苦力拉纖換一些吃喝。平時(shí),他不和任何人來...
全文
熱門問答