约瑟夫问题C语言写一下.

2024-11-30 05:01:19
推荐回答(1个)
回答(1):

#include
#include
void main(void)
{
int i,j=0,count=0,n,*a;
printf("请输入n:");
scanf("%d",&n);
if((a=(int *)malloc(n*sizeof(int)))==NULL)
{
printf("错误");
return;
}
for(i=0;i *(a+i)=1;
while(count<=n-1)
{
for(i=0;i {
if (*(a+i)==1)
j++;
if(*(a+i)==1&&j%5==0)
{
count++;
printf("%d ",i+1);
*(a+i)=0;
j=0;
}
}
}
free(a);
}