【发布时间】:2020-10-29 09:28:28
【问题描述】:
有人能指出我的逻辑有什么缺陷吗?不胜感激。
基本上,我试图用嵌套循环做的是检查任何一对中的失败者是否是前一对中的获胜者(具有更高的胜利强度)。如果是,然后我进入内部循环,检查这对的赢家是否在之前的任何一对中都是输家,从而创建一个循环。我对什么构成循环的理解是否正确?我怎样才能在不实施递归的情况下纠正这个问题?我不知道该怎么做。
void lock_pairs(void)
{
bool cycleCheck = false;
for (int u = 0; u < pair_count; u++)
{
for (int m = 0; m < u; m++)
{
if (pairs[u].loser == pairs[m].winner)
{
for (int k = m; k < u; k++)
{
if (pairs[u].winner == pairs[k].loser)
{
locked[pairs[u].winner][pairs[u].loser] = false;
cycleCheck = true;
}
}
}
}
if (cycleCheck == false)
{
locked[pairs[u].winner][pairs[u].loser] = true;
}
cycleCheck = false;
}
}
【问题讨论】: