c语言:指针的简单运用-创新互联-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

c语言:指针的简单运用-创新互联

题目

请用指针实现程序:n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下来的是原来的第几号的那位

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的吉隆网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
#includeint main()
{int n;
	scanf("%d", &n);
	int ren[100000] = {0 };//用一维数组存人数//初始化为0定义为没有人
	int i;
	for (i = 1; i<= n; i++)
	{ren[i] = i;//对n个人进行编号
	}
	int *p = ren+1;//取出编号为1的地址
	int k = 0;//用来对报数的的控制
	int j = 0;//游历编号中所有数
	int m = 0;//计数退出的人
	while (m< n - 1)
	{if (*(p + j) != 0)//对有编号的人进行报数
		{	k++;//一个人报,报数自增1
		}
		if (k == 3)//当p+j个人报数为三的时候进入
		{	*(p + j) = 0;//退出的人编号为0
			k = 0;//报数重新开始
			m++;//退出一个人,k自增1
		}
		j++;//一个人报完数到下一个人
		if (j == n)//当最后一个人报完数的时候,从头开始报数
		{	j = 0;
		}
	}
	while (*p == 0)//但只剩下一个人的时候,整个序列只有剩下那个人的编号不为0,从而找到那个人
	{p++;
	}
	printf("最后留下来的是第%d号\n",*p);
	return 0;
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享标题:c语言:指针的简单运用-创新互联
转载注明:http://kswsj.cn/article/csgpdi.html

其他资讯