指针的用法!各位大侠,帮帮忙!
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那个人。帮忙看一下下面程序哪错了?
#include <stdio.h>
#define N 100
int main()
{
int i = 0;
int k = 0;
int n, t;
int *p;
int a[N];
int flag = 1;
printf("please input a number:");
scanf("%d", &n);
p = a;
for (i = 0; i < n; i++)
{
*(p + i) = i + 1;
}
p = a;
for (i = 0; i < n; i++)
{
printf("%3d", *p++);
}
putchar('\n');
p = a;
t = n;
while (i < n && flag)
{
if (*p++ !=0)
{
k++;
}
if (k == 3)
{
k = 0;
*(p + i) = 0;
t--;
}
if (t == 1)
{
flag = 0;
}
i++;
if (i == n)
{
i = 0;
}
}
if (* p == 0)
{
p++;
}
printf("%d", *p);
system("pause");
}