c++ - 如果找到,则尝试输出所有索引值
问题描述
我有一个家庭作业,除了一部分,我几乎完成了。我的这部分作业要求我生成一个包含 10 个介于 15 和 20 之间的随机值的数组,然后要求用户输入一个整数并在数组中搜索该整数。如果找到整数(以及整数的任何重复项),则应输出整数的索引值。如果未找到整数,则应输出文本“未找到整数”。
好的,所以我已经完成了所有内容,除了我应该输出是否找到整数的部分。
我的代码块如下所示:
..................................................... ......................
search=0;
cout<<endl<<"Enter an integer to search for in the array: "<<endl;
cin>>search;
cout<<endl;
for(int i=0;i<10;i++)
{
if(search == array[i])
{
cout<<"Integer "<<search<<" was found at location "<<i+1<<"."<<endl;
}
else
{
cout<<"Integer "<<search<<" was not found."<<endl;
}
}
break;
..................................................... ......................
我进行此设置的方式不符合作业要求。
说我随机生成的数组就是这串数字——
[16] [18] [16] [20] [19] [15] [15] [20] [19] [16]
如果我输入“16”作为我要搜索的整数,输出将是 -
“在位置 1 找到了整数 16”
“未找到整数 16”
“在位置 3 发现整数 16”
“未找到整数 16”
“未找到整数 16”
“未找到整数 16”
“未找到整数 16”
“未找到整数 16”
“未找到整数 16”
“未找到整数 16”
“在位置 10 找到了整数 16”
如果我输入一个不在数组中的整数,输出将重复 10 次。
我想改变它,这样如果我输入“16”,我就会得到——
“在位置 1 找到了整数 16”
“在位置 3 发现整数 16”
“在位置 10 找到了整数 16”
如果我输入一个不在数组中的整数,我只想-
“未找到整数 (x)”
抱歉,如果这真的很简单,这是我的第一个 StackOverflow 问题和我的第一个编程课,教授完全用千篇一律的 youtube 视频“教”。我什至还没有听到他的声音。
提前感谢您的帮助。如果您需要我提供更多信息,请告诉我。
解决方案
不需要那个“break”声明。您要做的是检查随机生成的数组中是否存在该数字。如果可用,则需要打开“found_flag”。当“for循环”结束并且“found_flag”仍然关闭时,这意味着您正在搜索的数字不存在。
#include <iostream>
using namespace std;
int main(){
int search;
bool found_flag = false;
cout<<endl<<"Enter an integer to search for in the array: "<<endl;
cin>>search;
cout<<endl;
for(int i=0;i<10;i++)
{
if(search == array[i])
{
cout<<"Integer "<<search<<" was found at location "<<i+1<<"."<<endl;
found_flag = true;
}
}
if(!found_flag) cout<<"Integer "<<search<<" was not found."<<endl;
return 0;
}
推荐阅读
- javascript - AngularJs ng-repeat 显示第二个列表中匹配 ID 的计数
- macos - NSSpeechRecognition 对 macOS 语音识别没有响应
- c# - 广义方法,其中方法参数接受一个模型并返回不同的模型
- r - 如何使用 R 中的传单包使标记及其工具提示可见?
- python - pyparsing - 字符串解析以生成 Where 子句
- c# - 使用 linq 将对象添加到当前用户 asp.net mvc 列表
- tfs - 如何只允许任务工作项与变更集链接
- python - (Python) 使用 UTF-8 编码将字符串写入 CSV
- scala - write scala code for calculating distance to and from our given point
- batch-file - 如何根据存储在同名文本文件中的日期/时间重命名文件夹中的每个 JPG 文件?