我看了好久这个for循环一直看不懂,哪位高手可以详细帮我解释一下这个循环的过程好么??(约瑟夫环问题) 5

voidj(intn,intm,intk,int*b){inti,j,t,*a;a=newint[n+1];for(i=1;i<=n;i++)a[i]=i+1;a[n]=... void j(int n,int m, int k,int *b)
{
int i,j,t,*a;
a=new int[n+1];
for (i=1;i<=n;i++) a[i]=i+1;
a[n]=1;
for(j=0;j<n;j++)
{
for(i=1;i<m;i++)
{t=k;k=a[k];}
b[j]=k;a[t]=a[k];k=a[k];
}
delete a;
return;

}
展开
 我来答
匿名用户
2012-03-26
展开全部
P 是 指针 刚开始指向 a[0], (p-a[0])%4==0) %是求模 a=B%C 返回的是B/C 后的余数。(p-a[0])是求P所指地址和a[0]所在地址的差。 if((p-a[0])%4==0) printf("\n");的意思是p指向的地址与a[0] 所在的地址的差为4的倍数时 换行(即每输出四个数时换一行)。
输出结果如下:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式