有n个人围成一圈,按顺序从1到n编好号。从第一个开始报数,报到3的人退出圈子,下一个人从1开始报数,
答案:2 悬赏:0 手机版
解决时间 2021-01-16 15:30
- 提问者网友:不爱我么
- 2021-01-15 20:36
有n个人围成一圈,按顺序从1到n编好号。从第一个开始报数,报到3的人退出圈子,下一个人从1开始报数,
最佳答案
- 五星知识达人网友:一袍清酒付
- 2021-01-15 20:45
#include
#define N 10 //定义个数
#define C 3 //定义报数
int main()
{
int a[N];
int i,j,count;
//初始化数组
for(i=0;i {
a[i]=i+1;
}
count=N;//计数器
//循环处理前N-1个编号,每次查找出,将计数器递减,直到为1
printf("依次出局:\n");
for(i=0,j=0;count>1;)
{
if(a[i%N]!=0)//如果此数不为0,代表没有出局
{
if(j==C-1)//累加到报数个
{
i=i%N;//循环取编号
printf("%d ",a[i]);//输出
a[i]=0; //置0,代表出局
j=0; //置j=0,重新计数
count--; //计数器减一
while(a[i]==0)//寻找下一个没有出局的编号
{
i++;
i=i%N;//循环取编号
}
continue;//直接执行下一个外循环
}
else//否则累加报数个数
j++;
}
i++;
}
//处理最后一个
printf("\n最后一个:%d\n",a[i]);//输出
getchar();
return 0;
}
过段时间我在写个链表的,还没看完链表
#define N 10 //定义个数
#define C 3 //定义报数
int main()
{
int a[N];
int i,j,count;
//初始化数组
for(i=0;i
a[i]=i+1;
}
count=N;//计数器
//循环处理前N-1个编号,每次查找出,将计数器递减,直到为1
printf("依次出局:\n");
for(i=0,j=0;count>1;)
{
if(a[i%N]!=0)//如果此数不为0,代表没有出局
{
if(j==C-1)//累加到报数个
{
i=i%N;//循环取编号
printf("%d ",a[i]);//输出
a[i]=0; //置0,代表出局
j=0; //置j=0,重新计数
count--; //计数器减一
while(a[i]==0)//寻找下一个没有出局的编号
{
i++;
i=i%N;//循环取编号
}
continue;//直接执行下一个外循环
}
else//否则累加报数个数
j++;
}
i++;
}
//处理最后一个
printf("\n最后一个:%d\n",a[i]);//输出
getchar();
return 0;
}
过段时间我在写个链表的,还没看完链表
全部回答
- 1楼网友:空山清雨
- 2021-01-15 21:22
x=3
答案就是1x.2x.3x.4x...直到nx
也就是3.6.9.12.15.18.21...追问这可是大学c语言题 不是小学题追答你说的是这个啊...那你不知道了
答案就是1x.2x.3x.4x...直到nx
也就是3.6.9.12.15.18.21...追问这可是大学c语言题 不是小学题追答你说的是这个啊...那你不知道了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯