为什么运行不了?
#include <stdio.h>
int fun(int k,int m);
int main()
{
while(1)
{
int k,m;
scanf("%d",&k);
if(k==0)
break;
for(m=k+1; ;m++)
{if(fun(k,m))
break;
}
printf("%d\n",m);
}
system("pause");
return 0;
}
int fun(int k,int m)
{
int i,j,r=1,a[30]={1};
for(i=1,j=1;r<=k;i=i%(2*k)+1,j=j%m+1)
{
while(a[i]==0)
i=i%(2*k)+1;
if(j%m==0)
{ if(i<=k)
return 0;
break;
a[i]=0;
r++;
j=0;
}
while(r==k)
return 1;
}
}
[解决办法]
int fun(int k,int m)
{
int i,j,r=1,a[30]={1};
for(i=1,j=1;r<=k;i=i%(2*k)+1,j=j%m+1)
{
while(a[i]==0)
i=i%(2*k)+1;
if(j%m==0)
{
if(i<=k)
return 0;
break;
a[i]=0;
r++;
j=0;
}
while(r==k)
return 1;
}
}
这样写的话后面的语句是不会运行的