如何用指针操作数组方法来求下列c语言程序

n个人围成一圈,顺序排号,从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。要求用指针操作数组。

#include<stdio.h>

int main(){
    int *p,i,k,tem,sum,n,a[1000];
    p=a;
    for(i=0;i<1000;i++)
        *(p+i)=1;  //第i个变量
    scanf("%d",&n);
    i=0,tem=0,sum=0;
    while(sum!=n-1){  //跳出的数量等于 n-1时退出
        if(i==n)
            i=0;
        if(*(p+i)==1){
            tem++;
            if(tem%3==0){  //数到3 数组赋值0 模拟跳出
                *(p+i)=0;
                sum++;
            }
        }
        i++;
    }
    for(i=0;i<n;i++)
        if(*(p+i)==1){
            printf("最后留下的是第%d位\n",i+1);
            break;
        }
    return 0;
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网