程序运行???
约瑟夫问题 有n个人围成一圈,1到3开始转圈报名,喊道3的同学出列,问最后剩下原来的几号
#include<stdio.h>
#include<malloc.h>
main()
{
int i,j=0,a,*p,x=-1,k=0;
printf("please input one NUM\n");
scanf("%d",&a);
p=(int *)calloc(a,sizeof(int));
*p=1;
for(i=2;i<=a;i++)
*(p+i)=i;
while(1)
{
x++;
if(x>=a) x-=a;
if(*(p+x)!=0) j++;
if(j%3==0&&*(p+x)!=0)
{printf("%d\t",*(p+x));
*(p+x)=0;
j=0;
k++;
if(k==a) break;
}
}
}
程序不能退出....晕....
请高手指教!!!