0

我有一个 for 循环,旨在接收一个目标数字,并循环遍历堆栈,直到它在 stack[target] 找到数据并且它应该返回该数据。

不幸的是,我只能让它返回它所在的数组的位置或一串随机数字(它会像我的代码一样定期更改)。

我试图只返回 stackArray[counter] 但这就像我只返回计数器一样。然后我更改了代码以创建一个新变量,然后返回该变量,然后我又回到了数字字符串。我认为这与我的堆栈数组是指针这一事实有关吗?这里有点撞砖墙,所以任何输入都会有所帮助。

这是我的循环(至少是最新版本。我已经尝试了很多不同的方法):

 for (int counter = 0; counter < target; counter++ )
    {
        if (stackArray[counter] == target)
        {
            answer = stackArray[counter];

        }
        cout << "beep " << counter << " " << target << endl;

    }
4

1 回答 1

2

for返回循环中匹配的值很简单。if只需在块内添加一个 return 语句。

for (int counter = 0; counter < target; counter++ )
{
    if (stackArray[counter] == target)
    {
        answer = stackArray[counter];

        return answer; // <---
    }
}

这没有什么意义,因为您已经知道answer会是什么,因为您正在使用target. 您的for循环似乎不正确,因为您正在迭代,target这意味着答案是已知的并且可以直接使用stackArray[target]. 在执行此搜索时,您希望一直搜索到数组的末尾。

于 2013-04-19T01:42:01.017 回答