/********************************问题描述*****************************************/
/*编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。
一开始任选一个正整数作为报数上限值m,从第一个人开始顺时针方向自1开始顺序报数,报到m时停止报数。
报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。
*/
//测试数据为:人数n=8;每个人持有的密码分别为:5 8 4 7 6 1 4 2;上限值m=15
/*********************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define MaxSize 100
typedef int ElemType;
//LinkList的类型定义如下:
typedef struct Node{
ElemType data; //数据域
ElemType cipher; //每个人持有的密码
struct Node *next;
}LinkList;
//用尾插入法创建链表 //尾插入法是将新节点插到当前链表的表尾上,为此必须增加一个尾指针p
void CreateLinkList(LinkList *&L,int n)
{
LinkList *s,*c;
int i;
L=(LinkList *)malloc(sizeof(LinkList)); // 创建头节点
/*if (L==NULL)
{
printf("memory allocation failed,goodbye"); //内存分配失败
exit(1);
}*/
c=L;
printf("请输入第1个元素的密码:");
scanf("%d",&(c->cipher));
c->data=1;
for(i=2;i<=n;i++)
{
s=(LinkList *)malloc(sizeof(LinkList));
/*if(s==NULL)
{
printf("memory allocation failed,goodbye"); //内存分配失败
exit(1);
}*/
printf("\n请输入第%d个元素的密码:",i);
scanf("%d",&(s->cipher));
s->data=i;
c->next=s;
c=s;
}
//p->next=NULL 最初用的是这个,我是按书上敲上去的,结果运行编译都没错,但显示最后结果的时候就出错了,改成下面一个就对了
c->next=L;
}
void Joseph(LinkList *&L,int m,int n) //出列
{
LinkList *s,*c;
int i = 1;
c = L;
printf("输出出对序列:\n");
while (n)
{
while (i != m)
{
s = c;
c = c->next;
i++;
}
printf("%-3d",c->data);
m = c->cipher;
s->next = c->next;
free(c); //释放所占内存
c = s->next;
i = 1;
n--;
}
printf("\n");
}
int main()
{
LinkList *L;
int n,m;
printf("请输入人数:");
scanf("%d",&n);
getchar();
CreateLinkList(L, n);
printf("请输入第一个报号数:");
scanf("%d",&m);
Joseph(L, m, n);
system("pause");
return 0;
}
Yuixz
- 粉丝: 73
- 资源: 17
最新资源
- 白色简洁的汽车零件制造商企业网站模板下载.zip
- 白色简洁的旅行运动装备企业网站模板下载.zip
- 白色简洁的商务信息企业网页模板下载.zip
- 白色简洁的设计整站网站模板下载.zip
- 白色简洁的设计院网页整站网站模板下载.zip
- 白色简洁的文化传媒网页企业模板下载.zip
- 白色简洁的数码相机商城整站网站模板下载.zip
- 白色简洁的摄影杂志网站模板下载.zip
- 白色简洁风的IT科技企业网站模板下载.zip
- 白色简洁的作品展媒体整站网站模板下载.zip
- 白色简洁的艺术展示网页模板下载.zip
- 白色简洁风的个性网站模板下载.rar
- 白色简洁风的博客网站模板下载.zip
- 白色简洁风的个性企业网站模板下载.zip
- 白色简洁风的家居企业网站模板下载.rar
- 白色简洁风的商务网站模板下载.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈