c++ - 如何创建比我的教科书提供的更容易的线性搜索算法

标签 c++ algorithm

<分区>

我需要一些帮助。我正在阅读的教 c++ 的教科书在教学生线性搜索算法方面做得不好。因此,我尝试在不使用任何函数的情况下重新创建算法。问题是,我写的代码似乎有一些错误。请注意,我使用的是 Microsoft Visual Studios 2013 IDE。结果,任何人都可以告诉我我的代码有什么问题吗?这是我用英文写的算法。该算法不会显示变量和数组定义,但源代码会。

附言这不是家庭作业。这只是为了好玩:) 附言由于某种原因,代码格式非常困惑。

算法:

  1. 要求用户输入一个数字
  2. 创建一个for循环
  3. 在for循环中遍历数组中的每个元素并进行比较 它与用户输入的数字
  4. 如果数组中的元素等于用户输入的数字,则显示一条消息说找到了
  5. 如果数组中的元素不等于用户输入的数字,则显示一条消息,指出未找到它。

代码:

#include <iostream>

using namespace std;

int main()
{
    // Create the array
    int array[6] = {1,2,3,4,5,6};
    int number;

    // Ask the user to enter a number
    cout << "Enter a number: ";
    cin >> number;

    // Create a for loop to traverse through each number in the array
    //to see if it equals the user inputted number
    for (int i = 0; i < 6; i++)
    {
        if (number == array[i])
        {
            cout << "Number Found: " << array[i] << endl;
        }
        else if (number != array[i])
        {
            cout << "Number Not Found!" << endl;
        }
    }
    return 0;
}

如果我输入 3,输出如下:

Number Not Found!
Number Not Found!
Number Found: 3
Number Not Found!
Number Not Found!
Number Not Found!

最佳答案

每次迭代的逻辑输出决策。但看起来你只需要输出一次你的决定。

因此,出于这个原因,全局声明一个 bool 变量并将 false 设置为该值的值。

对于每次迭代检查都会找到它。如果找到,则将 bool 值设置为 TRUE。

对于最终输出检查全局 bool 值是真还是假并打印输出

关于c++ - 如何创建比我的教科书提供的更容易的线性搜索算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34447515/

相关文章:

python - 在列表理解中遇到生成器问题

algorithm - 从绘制的轮廓到 "Estimate and Visualize 2d skeleton using Opencv"的最佳算法是什么

java - 如何索引大量排列?

c++ - 在 IPP 2019 中使用 Cubic 调整大小比 IPP 5.2 慢

c++ - 比较运算符的虚拟重载

c++ - 使用 Tesseract 进行页面布局分析?

java - 获得无向图中所有节点组合对的最佳算法(需要提高时间复杂度)

c++ - 接受一个或两个参数的模板函数

c++ - 模板和函数参数数量相等

java - 检查以输出数组中的最大值或如果为空则显示的算法