C++:数组元素的查找(要求:请自行运行,不要出现编译错误)?

题目描述
给你n个整数,并且给你要查找的整数k。

在n个整数中查找整数k是否存在,如果找到则输出k在n个整数中第一次出现的位置,如果找不到则输出-1

输入
第一行:一个整数n,表示有n个数 (1<=n<=100)

第二行:n个用空格隔开的整数

第三行:要查找的整数k

输出
找到则输出k在n个整数中第一次出现的位置

如果找不到则输出-1

样例输入
5
1 5 8 3 6
3
样例输出
4

#include<iostream>

#include<algorithm>

#include<vector>

using namespace std;

int main()

{

vector<int> a;//定义一个容器(和数组一样,只是功能更强一些) 

vector<int>::iterator it;//vector<int>型的迭代器(指针) 

int n,k,x;

cin>>n;//数组长度 

for(int i=0;i<n;i++)

{

cin>>x;

a.push_back(x);//容器尾部入栈 

}

cin>>k;//查找值 

it=find(a.begin(),a.end(),k);//查找k

//查找成功返回一个地址 

//查找失败返回容器尾部地址(a.end()) 

if(it!=a.end())//查找成功 

{//当前地址-首地址+1==k的排名 

cout<<it-a.begin()+1;

}

else//c查找失败 

cout<<-1;

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-17
代码如下:如果需要持续判断你就改成循环输入。

#include<iostream>
using namespace std;

int main()
{
int n;
int num[100];
int search;
cout << "Enter n, n integer and num you want to search: \n";
cin >> n;
if(n < 1 || n > 100)
{
cout << n << "is too large!" <<endl;
return 0;
}
for(int i = 0; i < n; i++)
cin >> num[i] ;
cin >> search;

for(int i = 0; i < n; i++)
{
if(num[i] == search)
{
cout << i+1 << endl;
return 0;
}
}
cout << "-1" << endl;
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网