📄 yuesefu.cpp
字号:
//约瑟夫环,利用循环链表,按题目所述方法操作
#include <stdio.h>
#include <stdlib.h>
#define N 10
typedef struct node
{
int num,NO;
struct node *next;
}Node,*pNode;
void main()
{
//初始化循环链表
int i,m;
pNode head,p,q;
printf("%d个人的数字为:\n",N);
p=head=(pNode)malloc(sizeof(Node));
if(!p) printf("malloc failed!\n");
p->num=rand()+100;
p->NO=1;
printf("%d:%d\t",p->NO,p->num);
for(i=1;i<N;i++)
{
p->next=(pNode)malloc(sizeof(Node));
if(!p) printf("malloc failed!\n");
p=p->next;
p->num=rand()+100;
p->NO=i+1;
printf("%d:%d\t",p->NO,p->num);
}
p->next=head;
m=rand()+100;
printf("\n");
//开始报数
p=head;
while(p->next!=p)
{
for(i=1;i<(m % N);i++) {q=p;p=p->next;}
q->next=p->next;
printf("%d号出列\n",p->NO);
free(p);
p=q->next;
}
printf("%d号出列\n",p->NO);
free(p);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -