C语言 如何约瑟夫环

wenxian8 2011-03-30 08:26:20
记得一年前,还不知道,或者说 无法理解:什么是约瑟夫环。 甚至给个代码,也无法看懂,无法理解。
现在终于 实现了 顺序表的基本算法来实现了:约瑟夫环的问题了。 在此分享一下,呵呵。

#include<stdio.h>
#include<stdlib.h>
#define Maxsize 30
struct SqList
{
int Data[Maxsize];

int length;
};

typedef struct SqList SqList;

void InitList(SqList *&L)
{
L = (SqList *)malloc(sizeof(SqList));

L->length = 0;
}

void CreateList(SqList *&L)
{
int i;

int people;

printf("请输入参加报数的人数:\n");

scanf("%d",&people);

for (i=0; i<people; i++)
{
L->Data[i] = i + 1;

printf("%d ", L->Data[i]);
}

printf("\n");

L->length = people;
}

void DisplayList(SqList *L)
{
int m, i, j;

int k=0;

printf("请输入报数出队的次数: \n");

scanf("%d", &m);

for (i=L->length; i>0; i--)
{
k=(k+m-1)%i;

printf("%d ",L->Data[k]);

for (j=k;j<i-1; j++)
{
L->Data[j] = L->Data[j+1];
}

L->length = L->length - 1;
}

printf("\n");
}
void main()
{
SqList *L;

InitList(L);

CreateList(L);

DisplayList(L);
}

更详细在下面
http://blog.163.com/wenxianliang08@126/blog/static/83583263201123082555788/
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zkd_csdn 2011-11-14
  • 打赏
  • 举报
回复
初学者来访问
nfer_cn 2011-03-30
  • 打赏
  • 举报
回复
多学习,多总结!

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧