栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C:围圈报数,内蒙古,892,1709,程序设计

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C:围圈报数,内蒙古,892,1709,程序设计

问题描述:有n个人围成一圈,顺序排号。现从第i个人开始,由1至k不断报数,凡报到k的人出列。重复报数过程,直到所有人都出列为止。请编写程序模拟这n个人出列的顺序。

思路:将n个人排列在数组中,将位置序号1~n存放到对应数据元素中a[0~n-1],因此第i个人在数组a[i-1]的位置上;从指定的第i个人(a[i-1])开始从1到k循环报数,只要没有退出就参与报数,直到有人报到k,输出存放的位置,将数组元素置为0表示已退出,退出人数加1;从下一没退出的人重新开始报数;当超过数组末尾时,i置为0从数组头开始再循环报数,直至退出人数达到总人数减1,不再报数;从头遍历数组找到没有被退出的元素,输出存放位置。

代码:

#include
int main(){
	int i,k,m,n,num[50],k1;			
	scanf("%d %d %d",&n,&k,&i);		//n表示参与报数的总人数;k表示一次报数的值;i表示从第几个人开始报数; 
	for(int j=0;j 

思路表述欠佳,但是程序总体是可行的,希望大家多提宝贵的建议。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/352599.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号