C++——有n个人围成一圈,顺序排号。从第1个人开始报数(从1-3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。用指针或引用方法处理。

没注释的源代码

#include <iostream>

using namespace std;

int main()
{
    int number[100],n,*p,i,k=0,m=0;
    cout<<"please input number of person n=";
    cin>>n;
    p=number;
    for(i=0;i<n;i++)
    {
        *(p+i)=i+1;
    }
    i=0;

    while(m<n-1)
    {
        if(*(p+i)!=0) k++;
        if(k==3)
        {
            *(p+i)=0;
            k=0;
            m++;
        }
        i++;
        if(i==n)i=0;
    }
    while(*p==0)p++;
    cout<<"the last one is No."<<*p<<endl;
    return 0;
}