C++ 只能检查数组的第一个元素

C++ 只能检查数组的第一个元素,c++,arrays,C++,Arrays,我在for循环中迭代数组时遇到了一些问题。 此函数的作用是检查数字是否已放置在数组的其他位置,以便不会出现重复的数字。 当我运行函数时,它只遍历函数的第一个元素并停止 bool check(int wins[], int number) { for (int i = 0; i <= arraySize; ++i) if (number == wins[i]) { return true; }

我在for循环中迭代数组时遇到了一些问题。 此函数的作用是检查数字是否已放置在数组的其他位置,以便不会出现重复的数字。 当我运行函数时,它只遍历函数的第一个元素并停止

bool check(int wins[], int number)
{   
    for (int i = 0; i <= arraySize; ++i)
        if (number == wins[i])
        {
            return  true;
        }
        else if (number != wins[i])
        {
            return false;
        }

}
bool检查(整数赢[],整数编号)
{   

对于(int i=0;i而言,您的缩进是误导性的。发生的情况如下:

bool check(int wins[], int number)
{   
    for (int i = 0; i <= arraySize; ++i)
        if (number == wins[i])
        {
            return  true;
        }
        else if (number != wins[i])
        {
            return false;
        }
}
bool检查(整数赢[],整数编号)
{   

对于(int i=0;i)您在第一次检查后无条件返回。删除else分支。不相关,我怀疑
i
bool check(int wins[], int number)
{   
    for (int i = 0; i < arraySize; ++i)   // assuming that arraySize is some const size of the array
        if (number == wins[i])   // if number is found 
        {
            return  true;        // return immediately  
        }

    // if you arrive here, the loop finished without a match
    return false;
}