⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yuesefu.cpp

📁 约瑟夫环的c语言实现
💻 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 + -