您的位置:首页 > 其它

题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用数组完成

2016-10-29 21:49 483 查看
#include <stdio.h>

#define N 5  //指定一群中的人数

int main()

{
int i,k;
int a[N+1],*p;

    //循环赋值
for(i = 0,p = a;p <= a+N;i++,p++)
{
*p=i;
}

p = a + 1;

for(i = 0,k = N;k > 1;p++)
{

//指向末尾后从头指
if(p > (a + N))
{
p = a + 1;
}

        //跳过数组中赋0的元素
if(*p != 0)
{
i++;
}

if((i - 3) == 0)
{
*p = 0;
i = 0;
k--;
}
}

for(i = 1;i <= N;i++)
{
if(a[i] != 0)
{
printf("The rest num is %d\n",a[i]);
}
}

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐