7.29打卡

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

程序:

#include <stdio.h>

#define nmax 50

main()

{

    int i,k,m,n,num[nmax],*p;

    printf("please input the total of numbers:");

    scanf("%d",&n);

    p=num;

    for(i=0;i<n;i++)

    *(p+i)=i+1;  //为数组num赋值

    i=0;

    k=0;

    m=0;

    while(m<n-1) //删除n-1个报数为3的人

    {

        if(*(p+i)!=0) k++;

        if(k==3)

        {

    *(p+i)=0;

            k=0;

            m++;

        }//令报数为3的人的值为空,并重置计数器k

        i++;

        if(i==n) i=0; // 当指针指向末尾时,使其重新指向开始

    }

    while(*p==0) p++;//跳过被排除的人

    printf("%d is left\n",*p);

}

图片发自简书App
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,428评论 0 2
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,062评论 0 2
  • 读过的书越多,就越觉得自己的知识储量有多么匮乏。见过的人越多,就越明白最终能走到一起的人有多么寥寥无几。 我一直都...
    啊洋25阅读 296评论 0 2
  • 今天晚上去接乔宇时,一见到我就给我看他拍卖的礼物,看到哪高兴样,边走边高兴的说着,还说他喜欢哪个什么台灯只可惜分数...
    乔宇妈阅读 206评论 0 0
  • 其实在今年年初,就初略的写过一篇关于react项目创建的详细步骤的文章,但那时候都是在最后实践完成之后自己凭借着回...
    Swimly阅读 3,188评论 0 2