【发布时间】:2011-08-25 01:35:57
【问题描述】:
我有嵌套 (r=) 3 次的嵌套循环。每个循环运行 (n=) 5 次。
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
for (k=0; k<n; k++)
//
}
}
但是我们如何在运行时动态地进行嵌套。假设我们知道它应该嵌套 r 次。每个循环运行 n 次。我想到了类似递归的东西,但它会无限期地进行。
funloop (int r)
{
for (int i = 0; i < n; i++)
{
//
if (r < 3)
funloop (r++);
else
return;
}
}
请告诉我如何做到这一点?我在网上找不到资源。
【问题讨论】:
-
你能发布你对第二种情况的确切代码吗?您拥有的逻辑接近正确,不应无限循环,但没有看到实际代码,我无法提供对底层错误的更详细解释。
-
您的代码完全错误,因为您在第一个示例中使用了 3 次 i(现在是 i,j,k),而第二个示例中的 if 语句后面跟着两个表达式,而不是嵌套在一个块。所以还有一个悬而未决的东西。如果您发布可编译的代码,则不会发生此类错误。第二个例子仍然是错误的,因为注释标记了真正的代码应该在哪里,但这应该只是在 else 块中(然后也需要花括号)。
标签: c algorithm recursion permutation