c++ - 如何使用线性搜索算法猜测用户字母
问题描述
我有一个问题,我无法在 C++ 中实现。我总结如下:
问题:实现一个线性搜索键入程序来构建一个完整的字符串并返回它。
- 遍历包含每个 Alpha 字符、''、'.'、'!' 的数组
- 询问用户当前的数组元素是否是他们想要的
- 如果用户输入是,则将该元素连接到上面的“结果”,重新启动循环
- 如果用户输入是“!” 输出结果字符串
我的程序没有产生任何输出,所以我知道我做错了什么,但我对 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;
}
有没有人有任何意见或想法?我真的很感激!了解我在哪里出错对我来说很重要。我已经尝试调试一两天了,我感到很失败,但今天决心解决这个问题!
解决方案
推荐阅读
- php - 如何在codeigniter的动态菜单列表中添加活动类?
- jquery - Bootstrap 4 可折叠侧边栏,页面重新加载时的持久性
- python - Python - 根据条件通过迭代修改列表值的最佳方法
- java - 类实例协助
- python - 自动登录脚本需要使用存储在 txt 文件中的多个帐户登录
- ios - 扫描二维码经常崩溃 - AVCaptureSession
- java - 检查可选列表在java中是否有效
- javascript - vendor.bundle.js 是否包含在延迟加载模块中导入的库?
- c++ - 无法在 Cocos2dx 中使用受密码保护的 zip 文件
- c# - Newtonsoft.Json JsonTextReader- 如何检查 json-stream 是否有效