久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: C語言的算法:報數游戲程序 [打印本頁]

作者: XYDDD    時間: 2022-10-12 09:16
標題: C語言的算法:報數游戲程序
學技術,重在日拱一卒,一點一滴的積累。


今天,我們一起來分析C語言的算法:報數游戲。


算法:假設一共有n個人玩游戲,編號分別為1~n,手動輸入一個小于n的數w,則從1開始查數,當數到w的時候,則此編號的人退出游戲,然后下一個人重新開始從1報數,,直到所有人都退出游戲,求退出玩家的編號依次為什么?

例如:有5人玩游戲,w為2,則退出順序為2 4 1 5 3。



編程思路


編程思路:


1、根據題目要求,需要輸入兩個數n和m,當每次到m的時候,就有人退出,然后再重新開始報數1~m。

2、可以通過要求,理解為將1~n編號從1開始循環,到m之后對應編號退出,再重新開始循環,那么為了達到以上目的,可以通過設置鏈表的方式來存儲編號,同時將鏈表的首位連接,構成閉環的鏈表。

3、通過閉環的鏈表,我們就可以不斷的循環n次,在每次循環里面再循環m次,每次退出一人,然后在while循環中執行n減減操作,直到所有人退出完畢,結束循環。


程序范例
#include <stdio.h>

#include <stdlib.h>

struct ele

{

  int no;

  struct ele *link;

};

int n,m,i;

main()

{

  struct ele *h,*u,*p;

  system("cls");

  printf("請輸入 n (一共有多少人完游戲)和 m(報幾個數出去一個人):\n");

  scanf("%d%d",&n,&m);

  h=u=(struct ele *)malloc(sizeof(struct ele));

  h->no=1;

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

  {

    u->link=(struct ele *)malloc(sizeof(struct ele));

    u=u->link;

    u->no=i;

  }

  u->link=h;

  puts("\n依次退出循環的人數是:");


while(n)

{

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

  u=u->link;

  p=u->link;

  u->link=p->link;

  printf("%4d",p->no);

  free(p);

  n--;

}

printf("\n\n Press any key to quit...\n");

getch();

}

程序運行結果:






歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 精品成人免费视频 | 亚洲一区在线日韩在线深爱 | 欧美一级黄视频 | 久久久一区二区 | 国产91精品网站 | 成人午夜黄色 | 亚洲一区二区精品视频在线观看 | 国产一区二区三区久久久久久久久 | 日韩精品在线播放 | 国产xxxx在线 | 欧美偷偷操| 久久精品男人的天堂 | 欧美精品久久久久 | 国产欧美精品区一区二区三区 | 日本高清aⅴ毛片免费 | 国产激情视频网站 | 欧美二区在线 | 桃花av在线 | 精品毛片 | 夜夜爽99久久国产综合精品女不卡 | 波多野结衣av中文字幕 | 国产丝袜av | 一区二区成人 | 成人小视频在线观看 | 久久综合狠狠综合久久综合88 | 精品久久一区二区三区 | 国产日韩欧美一区 | 激情在线视频 | 久久黄视频 | www.嫩草| 91天堂| 色在线看 | 免费一区二区 | 天堂一区二区三区 | 亚洲不卡 | 久久久久久国产免费视网址 | 日韩欧美成人一区二区三区 | 在线视频中文字幕 | 亚洲少妇综合网 | 亚洲国产情侣自拍 | 久久99精品久久久久久 |