#include <stdio.h>
void del(int *p,int n);
int main(void)
{
int n,i;
int *p;
printf("please input->:");
scanf("%d",&n);
/* 给输入的数排序 */
for(i=0;i<n;i++)
*(p+i) = (i+1);
del(p,n);
while(*p == 0) /* p指向不等于0的数退出循环 */
p++;
printf("%d\n",*p);
return 0;
}
void del(int *p,int n)
{
int i=0;
int m=0;
int k=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;
}
}
有n个人围成一圈,顺序排号。从第1个人开始报数,凡是报道3的人退出圈子,最后留下来的是原来的几号(指针实现)
最新推荐文章于 2022-03-31 22:56:54 发布