当计算机在我的代码中要求时我没有输入数组中存在的键时,如何打印“数组中不存在键(元素)”
Posted
技术标签:
【中文标题】当计算机在我的代码中要求时我没有输入数组中存在的键时,如何打印“数组中不存在键(元素)”【英文标题】:How to print "The key(element) is not present in your array" when I don't enter a key present in my array when asked for by the computer in my code 【发布时间】:2020-11-13 11:06:28 【问题描述】:假设我输入1,3,3,5
作为我的数组,当被要求输入我想知道其索引的键时,我输入了 6。如何编辑我的代码以打印“输入的密钥不在您的数组中”?
我的代码如下:
#include <iostream>
using namespace std;
void linearsearch(int arr[], int n, int key)
int i;
for (i = 0; i < n; i++)
if (arr[i] == key)
cout << " \nthe index is: " << i;
int main()
int n;
cout << "enter the size of your array : ";
cin >> n;
int arr[n];
cout << "\nenter the keys of your array: ";
for (int i = 0; i < n; i++)
cin >> arr[i];
int key;
cout << "\n enter the key whose index you want to know: ";
cin >> key;
linearsearch(arr, n, key);
【问题讨论】:
为什么你的代码中有这么多空行?它真的很难阅读。 您需要跟踪号码是否被找到。 提示:如果您的linearsearch
函数在找到该号码时返回true
而如果没有返回false
怎么办?
@Botje 如果数组中有相同的数字,这将不起作用,它将显示该数字第一次出现的索引并终止函数。
我从来没有说过你的函数在找到一个元素后必须返回。
【参考方案1】:
//你可以在void函数中使用布尔控制变量,当你找到数字时,你可以将其值设置为true,并在循环末尾插入一个if语句来检查bool变量的值,如果循环中的 if 语句未执行,表示未找到数字并且变量的值为 false,因此它将打印您询问的行 //
#include <iostream>
using namespace std;
void linearsearch(int arr[], int n, int key)
int i;
bool found = false;
for (i = 0; i < n; i++)
if (arr[i] == key)
cout << " \nthe index is: " << i;
found = true;
if (found == false)
cout << "The key entered is not in your array." << endl;
int main()
int n;
cout << "enter the size of your array : ";
cin >> n;
int arr[n];
cout << "\nenter the keys of your array: ";
for (int i = 0; i < n; i++)
cin >> arr[i];
int key;
cout << "\n enter the key whose index you want to know: ";
cin >> key;
linearsearch(arr, n, key);
【讨论】:
以上是关于当计算机在我的代码中要求时我没有输入数组中存在的键时,如何打印“数组中不存在键(元素)”的主要内容,如果未能解决你的问题,请参考以下文章
为啥当我调用 UpdateData(FALSE) 时我的对话框没有立即更新?