基于C语言的约瑟夫生者生者游戏
2017-06-26 18:35
246 查看
约瑟夫生者生者游戏
#include<stdio.h> #include<stdlib.h> typedef struct node{ int data; struct node *next; }ListNode,*LinkList; /**************/ /*******建立单循环链表函数*******/ /**************/ LinkList InitRing(int n,LinkList R) { ListNode *p,*q; int i; R=q=(ListNode*)malloc(sizeof(ListNode)); for(i=1;i<n;i++){ p=(ListNode*)malloc(sizeof(ListNode)); q->data=i; q->next=p; q=p; } p->data=n; //P->data=n; p->next=R; R=p; return R; } /**************/ /*******生死与死者选择函数*******/ /**************/ LinkList DeleteDeath(int n,int k,LinkList R) { int i,j; ListNode *p,*q; p=R; printf("抛入大海者的编号如下:\n"); for(i=1;i<=n/2;i++) { for(j=1;j<=k-1;j++) { p=p->next; } q=p->next; p->next=q->next; printf("%4d",q->data); if(i % 10==0) printf("\n"); free(q); } printf("\n"); R=p; return R; } /**************/ /*******输出所有生者函数*******/ /**************/ void OutRing(int n,LinkList R) { int i; ListNode *p; p=R; printf("幸存者的编号如下:\n"); for(i=1;i<=(n+1)/2;i++,p=p->next) { printf("%4d",p->data); if(i % 10==0) printf("\n"); } printf("\n"); } /**************/ /*******主函数*******/ /**************/ int main(void) { LinkList R=NULL; int n,k; LinkList InitRing(int n,LinkList R); LinkList DeleteDeath(int n,int k,LinkList R); void OutRing(int n,LinkList R); printf("输入总人数 n 及报数上限 k :"); scanf("%d%d",&n,&k); R=InitRing(n,R); R=DeleteDeath(n,k,R); OutRing(n,R); scanf("%d",&n) ; }
相关文章推荐
- 基于C语言实现的贪吃蛇游戏完整实例代码
- 自己写的基于SDL的C语言游戏!
- 基于C语言实现的扫雷游戏代码
- 基于C语言实现的扫雷游戏
- 题目二:约瑟夫生者死者游戏
- 基于C语言实现五子棋游戏完整实例代码
- 贪吃蛇游戏,基于C语言,vs2010平台
- 基于C语言实现简单的走迷宫游戏
- 基于C语言实现的迷宫游戏代码
- 用c语言演绎“生命游戏”
- 基于Nokia手机的移动游戏开发步步通
- J2ME下基于MIDP2.0的手机游戏设计
- 使用Python语言设计基于HTML的C语言语法加亮显示程序
- 基于回合制的在线棋类对战游戏(图)
- 基于Nokia手机的移动游戏开发步步通(五)
- 基于Nokia平台的游戏通用框架
- 基于Nokia S60的游戏开发之二
- 基于Nokia手机的移动游戏开发步步通(一)