题目描述
给你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;
}
#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;
}