|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 |
#include <stdio.h>struct
ele{ int
no; struct
ele *link;}main(){ int
n,m,i; struct
ele *h,*u,*p; clrscr(); printf("Please input n&m:\n"); scanf("%d%d",&n,&m);/*输入n和m*/ h=u=(struct
ele *)malloc(sizeof(struct
ele));/*形成首表元*/ h->no=1; for(i=2;i<=n;i++)/*形成其余的n-1个表元*/ { u->link=(struct
ele *)malloc(sizeof(struct
ele));//中间变量 u=u->link; u->no=i;/*第i个表元置编号i*/ } u->link=h;/*末表元后继首表元,形成环*/ puts("\nThe numbers of who will quit the cycle in turn are:"); while(n) { for(i=1;i<m;i++)/*掠过m-1个表元*/ u=u->link; p=u->link;/*p指向第m个表元*/ u->link=p->link;/*第m个表元从环中脱钩*/ printf("%4d",p->no); free(p);/*释放第m个表元占用的空间*/ n--; } printf("\n\n Press any key to quit...\n"); getch();} |
原文:http://www.cnblogs.com/xzenith/p/3633159.html