C语言约瑟夫环的问题当为三时出局,求解下面的的代码为什么实现不了?

#include<stdio.h>#defineM3#defineN10voidprint(int*p,intn){inti;for(i=0;i<n;i++)printf... #include<stdio.h>
#define M 3
#define N 10
void print(int*p,int n)
{
int i;
for(i=0;i<n;i++)
printf("%3d",p[i]);
printf("\n");
}
int main(void)
{
int a[N],p=N,count=0;
int i;
for(i=0;i<10;i++)
a[i]=i+1;
i=0;
while(1)
{ if(p==0)
break;
if(a[i]>0)
count++;
if(count%M==0)
{
a[i]=0;
p--;
print(a,N);
}
i++;
if(i==10)
i=0;

}
return 0;

}
展开
 我来答
kaixingui2012
2014-12-20 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6424万
展开全部
#include<stdio.h>
#define M 3
#define N 10
void print(int*p,int n)
{
int i;
for(i=0;i<n;i++)
printf("%3d",p[i]);
printf("\n");
}
int main(void)
{
int a[N],p=N,count=0;
int i;
for(i=0;i<10;i++)
a[i]=i+1;
i=0;
while(1)
{  
if(p==0)
break;
if(a[i]>0)
count++;
if(count==M) //当a[i]==0时,且count是M的倍数时,这里陷入错误状况,这样修改就好了
{
a[i]=0;
p--;
print(a,N);
count=0; //重新计数
}
i++;
if(i==10)
i=0;
}
return 0;
}
追问
你用的是什么编译器?
追答
以上显示是百度的回答格式,与我的编译器无关,我用的Vc6
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式