约瑟夫色环(数三出局)

这篇博客介绍了一个使用C语言实现的数三出局游戏的代码,该代码虽然简洁但包含了一些复杂的条件判断。博主分享了完整的游戏逻辑,包括读取玩家数量和间隔人数,以及出局顺序的打印。程序通过一个大循环来模拟游戏过程,当只剩下一个人时结束游戏。文章还展示了最后出局的人的序号以及所有出局顺序的详细列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接干,细节太多!代码有点丑,但是还是留着吧!

#include<stdio.h>
//数三出局:条件很多(包括隐含的条件)
int main()
{
	int num,n;   //总人数和间隔
	printf("总人数:\n");
	scanf("%d",&num);
	printf("间隔人:\n");
	scanf("%d",&n);
	
	int person[num],ren[num],t=0,i=0;
	for(; i<num; i++) person[i]=i+1;
	i=0;
	while(t!=num-1)  //剩下一个人的时候  
	{
		static int count=0;
		if(person[i]!=0)	count++;  //3没被数过
		if(count==n)  
		{
			ren[t++]=person[i];  //加入顺序  
			person[i]=0;
			count=0;
		}
		
		i++; 
		i= i==num ?0:i;  //大循环
	}
	for(i=0;i<num;i++)	if(person[i]!=0)	{ren[t++]=person[i];break;}
	printf("最后一个出局的人序号:%d\n",ren[t-1]);
	printf("出局顺序:");
	for(i=0; i<num; i++)
	{
		if(i%5==0)	printf("\n");
		printf("%d\t",ren[i]);
	}
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值