Sunteți pe pagina 1din 1

/* Se dau un vector de n elemente si o valoare x.

Sa se precizeze daca valoarea


x apare in vector (cautare binara), de cate ori apare, si pe ce pozitie? */
//a) cautare binara
#include<iostream>
using namespace std;
int main()
{
int n, i, v[100], x, j, ok, m;
cout<<"Introduceti numarul de elemente din vector: "; cin>>n;
for (i=1;i<=n;i++)
{cout<<"Valoarea "<<i<<" este: ";cin>>v[i];}
cout<<"Numarul de verificat este: ";cin>>x;
i=1;
j=n;
ok=0;
while(i<=j&&!ok)
{
m=(j+i)/2;
if(v[m]==x) ok=1;
else if(x<v[m])
j=m-1;
else i=m+1;
}
if(ok) cout<<"Numarul "<<x<<" se gaseste pe pozitia "<<m<< ".";
else cout<<"Numarul "<<x<<" nu se gaseste in vector.";
return 0;
}
//b) de cate ori apare valoarea x printre elementele vectorului
k=0;
for (i=1; i<=n; i++)
if (V[i]==x) k++;
cout << x << "se gaseste in vector de " << k << " ori.";
//c) pe ce pozitie apare
if (k>0)
{
cout << "Valoarea " << x << " se afla pe pozitia";
for (i=1; i<=n; i++)
if (v[i]==x) cout << " " << i;
}