首页 > 解决方案 > 如何使用线性搜索算法猜测用户字母

问题描述

我有一个问题,我无法在 C++ 中实现。我总结如下:

问题:实现一个线性搜索键入程序来构建一个完整的字符串并返回它。

  1. 遍历包含每个 Alpha 字符、''、'.'、'!' 的数组
  2. 询问用户当前的数组元素是否是他们想要的
  3. 如果用户输入是,则将该元素连接到上面的“结果”,重新启动循环
  4. 如果用户输入是“!” 输出结果字符串

我的程序没有产生任何输出,所以我知道我做错了什么,但我对 c++ 非常陌生,并且在识别潜在错误时遇到了麻烦。该代码不会产生任何错误或警告。我不完全确定代码的哪些部分最重要,因此我将其全部包含在内。

到目前为止,这是我的代码:

#include <iostream>
#include <string>
using namespace std;
 
char linearSearch(char arr[], int n, char x)
{
    int i;
    for (i = 0; i < n; i++)
        if (x == 'y')
            return i;
        if (x == '!')
            return -1;
        if (i > n)
            i = 0;
      return 0;
}
 
// Driver code
int main()
{
    char arr[] = {
     ' ', '.', '!', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
   'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
   };
    char x;
    int n = sizeof(arr) / sizeof(arr[0]);
    int i;
    i = 0;
    cin >> x;
    string result_str;
    result_str = " ";
    while (i < n)
    {
      i++;
      cout << "Are you thinking of the letter:" << arr[i] << '?';
      result_str += arr[i];
    }
    // Function call
    char result = linearSearch(arr, n, x);
        cout << "You typed:" << result_str;
    return 0;
}

有没有人有任何意见或想法?我真的很感激!了解我在哪里出错对我来说很重要。我已经尝试调试一两天了,我感到很失败,但今天决心解决这个问题!

标签: c++

解决方案


推荐阅读